home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / f4w3api.zip / F4W3API.KIT / WINDEV / INCLUDE / WINDOWS.FD next >
Text File  |  1991-11-12  |  154KB  |  4,927 lines

  1. C
  2. C  WINDOWS.FD -
  3. C
  4. C Author       : Kevin B Black
  5. C Date written : 12 Oct 1991
  6. C Abstract     :
  7. C
  8. C INCLUDE FILE FOR FORTRAN WINDOWS 3.0 APPLICATIONS
  9. C
  10. C  General Purpose Defines
  11. C
  12.  
  13.       INTEGER*2 NULL,FALSE,TRUE
  14.       PARAMETER (NULL=      0)
  15.       PARAMETER (FALSE=     0)
  16.       PARAMETER (TRUE=      1)
  17.       CHARACTER*(*) NULLSTR [C]
  18.       PARAMETER (NULLSTR=CHAR(0))
  19.  
  20. $IF .NOT.DEFINED(WIN_INTERNAL)
  21.       STRUCTURE /RECT/
  22.      INTEGER*2 LEFT
  23.      INTEGER*2 TOP
  24.      INTEGER*2 RIGHT
  25.      INTEGER*2 BOTTOM
  26.       END STRUCTURE
  27. $ENDIF
  28.  
  29.       STRUCTURE /POINT/
  30.      INTEGER*2 X
  31.      INTEGER*2 Y
  32.       END STRUCTURE
  33.  
  34. C
  35. C  KERNEL Section
  36. C
  37.  
  38. $IF DEFINED(KERNEL)
  39.  
  40. C
  41. C Loader Routines
  42. C
  43.       INTEGER*2 GetVersion [EXTERN]
  44.       INTEGER*2 GetNumTasks [EXTERN]
  45.       INTEGER*2 GetCodeHandle [EXTERN]
  46.       INTEGER*2 GetModuleHandle [EXTERN]
  47.       INTEGER*2 GetModuleUsage [EXTERN]
  48.       INTEGER*2 GetModuleFileName [EXTERN]
  49.       INTEGER*2 GetInstanceData [EXTERN]
  50.       INTEGER*4 GetProcAddress [EXTERN]
  51.       INTEGER*4 MakeProcInstance [EXTERN]
  52.       INTEGER*2 LoadLibrary [EXTERN]
  53.       INTEGER*2 LoadModule [EXTERN]
  54.       INTEGER*2 FreeModule [EXTERN]
  55.       INTEGER*4 GetFreeSpace [EXTERN]
  56.       INTEGER*2 WinExec [EXTERN]
  57.       INTEGER*2 GetCurrentPDB [EXTERN]
  58.  
  59. $IF DEFINED(OPENFILE)
  60.  
  61. C
  62. C OpenFile() Structure
  63. C
  64.  
  65.       STRUCTURE /OFSTRUCT/
  66.      BYTE cBytes
  67.      BYTE fFixedDisk
  68.      INTEGER*2 nErrCode
  69.      BYTE reserved(4)
  70.      CHARACTER*128 szPathName
  71.       END STRUCTURE
  72.  
  73. C
  74. C OpenFile() Flags
  75. C
  76.       INTEGER*2 OF_READ
  77.       PARAMETER (OF_READ =          #0000)
  78.       INTEGER*2 OF_WRITE
  79.       PARAMETER (OF_WRITE=          #0001)
  80.       INTEGER*2 OF_READWRITE
  81.       PARAMETER (OF_READWRITE=      #0002)
  82.       INTEGER*2 OF_SHARE_COMPAT
  83.       PARAMETER (OF_SHARE_COMPAT=   #0000)
  84.       INTEGER*2 OF_SHARE_EXCLUSIVE
  85.       PARAMETER (OF_SHARE_EXCLUSIVE=#0010)
  86.       INTEGER*2 OF_SHARE_DENY_WRITE
  87.       PARAMETER (OF_SHARE_DENY_WRITE=#0020)
  88.       INTEGER*2 OF_SHARE_DENY_READ
  89.       PARAMETER (OF_SHARE_DENY_READ= #0030)
  90.       INTEGER*2 OF_SHARE_DENY_NONE
  91.       PARAMETER (OF_SHARE_DENY_NONE= #0040)
  92.       INTEGER*2 OF_PARSE
  93.       PARAMETER (OF_PARSE=          #0100)
  94.       INTEGER*2 OF_DELETE
  95.       PARAMETER (OF_DELETE=         #0200)
  96.       INTEGER*2 OF_VERIFY
  97.       PARAMETER (OF_VERIFY=         #0400)
  98.       INTEGER*2 OF_CANCEL
  99.       PARAMETER (OF_CANCEL=         #0800)
  100.       INTEGER*2 OF_CREATE
  101.       PARAMETER (OF_CREATE=         #1000)
  102.       INTEGER*2 OF_PROMPT
  103.       PARAMETER (OF_PROMPT=         #2000)
  104.       INTEGER*2 OF_EXIST
  105.       PARAMETER (OF_EXIST=          #4000)
  106.       INTEGER*2 OF_REOPEN
  107.       PARAMETER (OF_REOPEN=         #8000)
  108.  
  109. C
  110. C GetTempFileName() Flags
  111. C
  112.  
  113.       BYTE TF_FORCEDRIVE
  114.       PARAMETER (TF_FORCEDRIVE=#80)
  115.  
  116.       BYTE GetTempDrive [EXTERN]
  117.       INTEGER*2 GetTempFileName [EXTERN]
  118.       INTEGER*2 SetHandleCount [EXTERN]
  119.       INTEGER*2 GetDriveType [EXTERN]
  120.  
  121. C
  122. C GetDriveType return values
  123. C
  124.       INTEGER*2 DRIVE_REMOVABLE
  125.       PARAMETER (DRIVE_REMOVABLE=2)
  126.       INTEGER*2 DRIVE_FIXED
  127.       PARAMETER (DRIVE_FIXED=    3)
  128.       INTEGER*2 DRIVE_REMOTE
  129.       PARAMETER (DRIVE_REMOTE=   4)
  130.  
  131. C
  132. C OpenFile function
  133. C
  134.       INTEGER*2 OpenFile [EXTERN]
  135.  
  136. $ENDIF ! NOOPENFILE
  137.  
  138. $IF DEFINED(MEMMGR)
  139.  
  140. C
  141. C Global Memory Flags
  142. C
  143.  
  144.       INTEGER*2 GMEM_FIXED
  145.       PARAMETER (GMEM_FIXED=        #0000)
  146.       INTEGER*2 GMEM_MOVEABLE
  147.       PARAMETER (GMEM_MOVEABLE=     #0002)
  148.       INTEGER*2 GMEM_NOCOMPACT
  149.       PARAMETER (GMEM_NOCOMPACT=    #0010)
  150.       INTEGER*2 GMEM_NODISCARD
  151.       PARAMETER (GMEM_NODISCARD=    #0020)
  152.       INTEGER*2 GMEM_ZEROINIT
  153.       PARAMETER (GMEM_ZEROINIT=     #0040)
  154.       INTEGER*2 GMEM_MODIFY
  155.       PARAMETER (GMEM_MODIFY=       #0080)
  156.       INTEGER*2 GMEM_DISCARDABLE
  157.       PARAMETER (GMEM_DISCARDABLE=  #0100)
  158.       INTEGER*2 GMEM_NOT_BANKED
  159.       PARAMETER (GMEM_NOT_BANKED=   #1000)
  160.       INTEGER*2 GMEM_SHARE
  161.       PARAMETER (GMEM_SHARE=        #2000)
  162.       INTEGER*2 GMEM_DDESHARE
  163.       PARAMETER (GMEM_DDESHARE=     #2000)
  164.       INTEGER*2 GMEM_NOTIFY
  165.       PARAMETER (GMEM_NOTIFY=       #4000)
  166.       INTEGER*2 GMEM_LOWER
  167.       PARAMETER (GMEM_LOWER=        GMEM_NOT_BANKED)
  168.  
  169.       INTEGER*2 GHND
  170.       PARAMETER (GHND=GMEM_MOVEABLE.OR.GMEM_ZEROINIT)
  171.       INTEGER*2 GPTR
  172.       PARAMETER (GPTR=GMEM_FIXED.OR.GMEM_ZEROINIT)
  173.  
  174.  
  175.       INTEGER*2 GlobalAlloc [EXTERN]
  176.       INTEGER*4 GlobalCompact [EXTERN]
  177.       INTEGER*2 GlobalDiscard [EXTERN]
  178.       INTEGER*2 GlobalFlags [EXTERN]
  179.       INTEGER*2 GlobalFree [EXTERN]
  180.       INTEGER*4 GlobalHandle [EXTERN]
  181.       CHARACTER*(*) GlobalLock [EXTERN]
  182.       INTEGER*2 GlobalLRUNewest [EXTERN]
  183.       INTEGER*2 GlobalLRUOldest [EXTERN]
  184.       INTEGER*2 GlobalPageLock [EXTERN]
  185.       INTEGER*2 GlobalPageUnlock [EXTERN]
  186.       INTEGER*2 GlobalReAlloc [EXTERN]
  187.       INTEGER*4 GlobalSize [EXTERN]
  188.       INTEGER*2 GlobalUnfix [EXTERN]
  189.       INTEGER*2 GlobalUnlock [EXTERN]
  190.       INTEGER*2 GlobalUnWire [EXTERN]
  191.       CHARACTER*(*) GlobalWire [EXTERN]
  192.  
  193. C
  194. C Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE)
  195. C
  196.       INTEGER*2 GMEM_DISCARDED
  197.       PARAMETER (GMEM_DISCARDED=    #4000)
  198.       INTEGER*2 GMEM_LOCKCOUNT
  199.       PARAMETER (GMEM_LOCKCOUNT=    #00FF)
  200.  
  201.       INTEGER*2 LockData [EXTERN]
  202.       INTEGER*2 UnlockData [EXTERN]
  203.       INTEGER*2 LockSegment [EXTERN]
  204.       INTEGER*2 UnlockSegment [EXTERN]
  205.  
  206. C
  207. C Local Memory Flags
  208. C
  209.       INTEGER*2 LMEM_FIXED
  210.       PARAMETER (LMEM_FIXED=        #0000)
  211.       INTEGER*2 LMEM_MOVEABLE
  212.       PARAMETER (LMEM_MOVEABLE=     #0002)
  213.       INTEGER*2 LMEM_NOCOMPACT
  214.       PARAMETER (LMEM_NOCOMPACT=    #0010)
  215.       INTEGER*2 LMEM_NODISCARD
  216.       PARAMETER (LMEM_NODISCARD=    #0020)
  217.       INTEGER*2 LMEM_ZEROINIT
  218.       PARAMETER (LMEM_ZEROINIT=     #0040)
  219.       INTEGER*2 LMEM_MODIFY
  220.       PARAMETER (LMEM_MODIFY=       #0080)
  221.       INTEGER*2 LMEM_DISCARDABLE
  222.       PARAMETER (LMEM_DISCARDABLE=  #0F00)
  223.  
  224.       INTEGER*2 LHND
  225.       PARAMETER (LHND=LMEM_MOVEABLE.OR.LMEM_ZEROINIT)
  226.       INTEGER*2 LPTR
  227.       PARAMETER (LPTR=LMEM_FIXED.OR.LMEM_ZEROINIT)
  228.  
  229.       INTEGER*2 NONZEROLHND
  230.       PARAMETER (NONZEROLHND=LMEM_MOVEABLE)
  231.       INTEGER*2 NONZEROLPTR
  232.       PARAMETER (NONZEROLPTR=LMEM_FIXED)
  233.  
  234.       INTEGER*2 LNOTIFY_OUTOFMEM
  235.       PARAMETER (LNOTIFY_OUTOFMEM=    0)
  236.       INTEGER*2 LNOTIFY_MOVE
  237.       PARAMETER (LNOTIFY_MOVE=        1)
  238.       INTEGER*2 LNOTIFY_DISCARD
  239.       PARAMETER (LNOTIFY_DISCARD=     2)
  240.  
  241. C
  242. C Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE)
  243. C
  244.       INTEGER*2 LMEM_DISCARDED
  245.       PARAMETER (LMEM_DISCARDED=#4000)
  246.       INTEGER*2 LMEM_LOCKCOUNT
  247.       PARAMETER (LMEM_LOCKCOUNT=#00FF)
  248.  
  249.       INTEGER*2 LocalAlloc [EXTERN]
  250.       INTEGER*2 LocalCompact [EXTERN]
  251.       INTEGER*2 LocalDiscard [EXTERN]
  252.       INTEGER*2 LocalFree [EXTERN]
  253.       INTEGER*2 LocalFlags [EXTERN]
  254.       INTEGER*2 LocalHandle [EXTERN]
  255.       INTEGER*2 LocalInit [EXTERN]
  256.       CHARACTER*(*) LocalLock [EXTERN]
  257.       INTEGER*4 LocalNotify [EXTERN]
  258.       INTEGER*2 LocalReAlloc [EXTERN]
  259.       INTEGER*2 LocalShrink [EXTERN]
  260.       INTEGER*2 LocalSize [EXTERN]
  261.       INTEGER*2 LocalUnlock [EXTERN]
  262.  
  263. $ENDIF ! NOMEMMGR
  264.  
  265.       INTEGER*4 SetSwapAreaSize [EXTERN]
  266.       INTEGER*4 ValidateFreeSpaces [EXTERN]
  267.       INTEGER*2 SetErrorMode [EXTERN]
  268.  
  269.       INTEGER*4 GetDOSEnvironment [EXTERN]
  270.  
  271.       INTEGER*2 AllocDStoCSAlias [EXTERN]
  272.       INTEGER*2 AllocSelector [EXTERN]
  273.       INTEGER*2 ChangeSelector [EXTERN]
  274.       INTEGER*2 FreeSelector [EXTERN]
  275.  
  276.       INTEGER*2 UnlockResource [EXTERN]
  277.  
  278.       INTEGER*2 FindResource [EXTERN]
  279.       INTEGER*2 LoadResource [EXTERN]
  280.       INTEGER*2 FreeResource [EXTERN]
  281.       INTEGER*4 LockResource [EXTERN]
  282.       INTEGER*4 SetResourceHandler [EXTERN]
  283.       INTEGER*2 AllocResource [EXTERN]
  284.       INTEGER*2 SizeofResource [EXTERN]
  285.       INTEGER*2 AccessResource [EXTERN]
  286.  
  287. !#define MAKEINTRESOURCE(i)  (LPSTR)((DWORD)((WORD)(i)))
  288.  
  289. $IF DEFINED(RESOURCE)
  290.  
  291. C
  292. C Predefined Resource Types. NOTE The following were defined in the WINDOWS.H
  293. C file as follows :
  294. C
  295. !#define MAKEINTRESOURCE(i)  (LPSTR)((DWORD)((WORD)(i)))
  296. !#define RT_CURSOR          MAKEINTRESOURCE(1)
  297. C
  298.       INTEGER*4 RT_CURSOR
  299.       PARAMETER (RT_CURSOR=1)
  300.       INTEGER*4 RT_BITMAP
  301.       PARAMETER (RT_BITMAP=2)
  302.       INTEGER*4 RT_ICON
  303.       PARAMETER (RT_ICON=3)
  304.       INTEGER*4 RT_MENU
  305.       PARAMETER (RT_MENU=4)
  306.       INTEGER*4 RT_DIALOG
  307.       PARAMETER (RT_DIALOG=5)
  308.       INTEGER*4 RT_STRING
  309.       PARAMETER (RT_STRING=6)
  310.       INTEGER*4 RT_FONTDIR
  311.       PARAMETER (RT_FONTDIR=7)
  312.       INTEGER*4 RT_FONT
  313.       PARAMETER (RT_FONT=8)
  314.       INTEGER*4 RT_ACCELERATOR
  315.       PARAMETER (RT_ACCELERATOR=9)
  316.       INTEGER*4 RT_RCDATA
  317.       PARAMETER (RT_RCDATA=10)
  318.  
  319. $ENDIF ! NORESOURCE
  320.  
  321.       INTEGER*2 GetCurrentTask [EXTERN]
  322.  
  323. $IF DEFINED(ATOM)
  324. !typedef WORD               ATOM;
  325.  
  326. !%#define MAKEINTATOM(i)            (LPSTR)((DWORD)((WORD)(i)))
  327.  
  328.       INTEGER*2 InitAtomTable [EXTERN]
  329.       INTEGER*2 AddAtom [EXTERN]
  330.       INTEGER*2 DeleteAtom [EXTERN]
  331.       INTEGER*2 FindAtom [EXTERN]
  332.       INTEGER*2 GetAtomName [EXTERN]
  333.       INTEGER*2 GlobalAddAtom [EXTERN]
  334.       INTEGER*2 GlobalDeleteAtom [EXTERN]
  335.       INTEGER*2 GlobalFindAtom [EXTERN]
  336.       INTEGER*2 GlobalGetAtomName [EXTERN]
  337.       INTEGER*2 GetAtomHandle [EXTERN]
  338.  
  339. $ENDIF ! NOATOM
  340.  
  341. C
  342. C User Profile Routines
  343. C
  344.       INTEGER*2 GetProfileInt [EXTERN]
  345.       INTEGER*2 GetProfileString [EXTERN]
  346.       INTEGER*2 WriteProfileString [EXTERN]
  347.       INTEGER*2 GetPrivateProfileInt [EXTERN]
  348.       INTEGER*2 GetPrivateProfileString [EXTERN]
  349.       INTEGER*2 WritePrivateProfileString [EXTERN]
  350.  
  351.       INTEGER*2 GetWindowsDirectory [EXTERN]
  352.       INTEGER*2 GetSystemDirectory [EXTERN]
  353.  
  354. C
  355. C Catch()
  356. C
  357.       INTEGER*2 Catch [EXTERN]
  358. C
  359. C Character Translation Routines
  360. C
  361.       INTEGER*2 AnsiToOem [EXTERN]
  362.       INTEGER*2 OemToAnsi [EXTERN]
  363.       INTEGER*4 AnsiUpper [EXTERN]
  364.       INTEGER*2 AnsiUpperBuff [EXTERN]
  365.       INTEGER*4 AnsiLower [EXTERN]
  366.       INTEGER*2 AnsiLowerBuff [EXTERN]
  367.       INTEGER*4 AnsiNext [EXTERN]
  368.       INTEGER*4 AnsiPrev [EXTERN]
  369. C
  370. C Keyboard Information Routines
  371. C
  372. $IF DEFINED(KEYBOARDINFO)
  373.       INTEGER*2 OemKeyScan [EXTERN]
  374.       INTEGER*2 VkKeyScan [EXTERN]
  375.       INTEGER*2 GetKeyboardType [EXTERN]
  376.       INTEGER*2 MapVirtualKey [EXTERN]
  377.       INTEGER*2 GetKBCodePage [EXTERN]
  378.       INTEGER*2 GetKeyNameText [EXTERN]
  379.       INTEGER*2 ToAscii [EXTERN]
  380. $ENDIF
  381.  
  382. $IF DEFINED(LANGUAGE)
  383. C
  384. C Language dependent Routines
  385. C
  386. !%BOOL  FAR  PASCAL IsCharAlpha(char);
  387. !%BOOL  FAR  PASCAL IsCharAlphaNumeric(char);
  388. !%BOOL  FAR  PASCAL IsCharUpper(char);
  389. !%BOOL  FAR  PASCAL IsCharLower(char);
  390. $ENDIF
  391.  
  392.       INTEGER*4 GetWinFlags [EXTERN]
  393.  
  394. C
  395. C Windows info flags
  396. C
  397.       INTEGER*2 WF_PMODE
  398.       PARAMETER (WF_PMODE=      #0001)
  399.       INTEGER*2 WF_CPU286
  400.       PARAMETER (WF_CPU286=     #0002)
  401.       INTEGER*2 WF_CPU386
  402.       PARAMETER (WF_CPU386=     #0004)
  403.       INTEGER*2 WF_CPU486
  404.       PARAMETER (WF_CPU486=     #0008)
  405.       INTEGER*2 WF_STANDARD
  406.       PARAMETER (WF_STANDARD=   #0010)
  407.       INTEGER*2 WF_WIN286
  408.       PARAMETER (WF_WIN286=     #0010)
  409.       INTEGER*2 WF_ENHANCED
  410.       PARAMETER (WF_ENHANCED=   #0020)
  411.       INTEGER*2 WF_WIN386
  412.       PARAMETER (WF_WIN386=     #0020)
  413.       INTEGER*2 WF_CPU086
  414.       PARAMETER (WF_CPU086=     #0040)
  415.       INTEGER*2 WF_CPU186
  416.       PARAMETER (WF_CPU186=     #0080)
  417.       INTEGER*2 WF_LARGEFRAME
  418.       PARAMETER (WF_LARGEFRAME= #0100)
  419.       INTEGER*2 WF_SMALLFRAME
  420.       PARAMETER (WF_SMALLFRAME= #0200)
  421.       INTEGER*2 WF_80x87
  422.       PARAMETER (WF_80x87=      #0400)
  423.  
  424. C
  425. C WEP fSystemExit flag values
  426. C
  427.       INTEGER*2 WEP_SYSTEM_EXIT
  428.       PARAMETER (WEP_SYSTEM_EXIT=1)
  429.       INTEGER*2 WEP_FREE_DLL
  430.       PARAMETER (WEP_FREE_DLL=   0)
  431.  
  432. $IF DEFINED(OEMRESOURCE)
  433.  
  434. C
  435. C OEM Resource Ordinal Numbers
  436. C
  437.       INTEGER*2 OBM_CLOSE
  438.       PARAMETER (OBM_CLOSE=           32754)
  439.       INTEGER*2 OBM_UPARROW
  440.       PARAMETER (OBM_UPARROW=         32753)
  441.       INTEGER*2 OBM_DNARROW
  442.       PARAMETER (OBM_DNARROW=         32752)
  443.       INTEGER*2 OBM_RGARROW
  444.       PARAMETER (OBM_RGARROW=         32751)
  445.       INTEGER*2 OBM_LFARROW
  446.       PARAMETER (OBM_LFARROW=         32750)
  447.       INTEGER*2 OBM_REDUCE
  448.       PARAMETER (OBM_REDUCE=          32749)
  449.       INTEGER*2 OBM_ZOOM
  450.       PARAMETER (OBM_ZOOM=            32748)
  451.       INTEGER*2 OBM_RESTORE
  452.       PARAMETER (OBM_RESTORE=         32747)
  453.       INTEGER*2 OBM_REDUCED
  454.       PARAMETER (OBM_REDUCED=         32746)
  455.       INTEGER*2 OBM_ZOOMD
  456.       PARAMETER (OBM_ZOOMD=           32745)
  457.       INTEGER*2 OBM_RESTORED
  458.       PARAMETER (OBM_RESTORED=        32744)
  459.       INTEGER*2 OBM_UPARROWD
  460.       PARAMETER (OBM_UPARROWD=        32743)
  461.       INTEGER*2 OBM_DNARROWD
  462.       PARAMETER (OBM_DNARROWD=        32742)
  463.       INTEGER*2 OBM_RGARROWD
  464.       PARAMETER (OBM_RGARROWD=        32741)
  465.       INTEGER*2 OBM_LFARROWD
  466.       PARAMETER (OBM_LFARROWD=        32740)
  467.       INTEGER*2 OBM_MNARROW
  468.       PARAMETER (OBM_MNARROW=         32739)
  469.       INTEGER*2 OBM_COMBO
  470.       PARAMETER (OBM_COMBO=           32738)
  471.  
  472.       INTEGER*2 OBM_OLD_CLOSE
  473.       PARAMETER (OBM_OLD_CLOSE=       32767)
  474.       INTEGER*2 OBM_SIZE
  475.       PARAMETER (OBM_SIZE=            32766)
  476.       INTEGER*2 OBM_OLD_UPARROW
  477.       PARAMETER (OBM_OLD_UPARROW=     32765)
  478.       INTEGER*2 OBM_OLD_DNARROW
  479.       PARAMETER (OBM_OLD_DNARROW=     32764)
  480.       INTEGER*2 OBM_OLD_RGARROW
  481.       PARAMETER (OBM_OLD_RGARROW=     32763)
  482.       INTEGER*2 OBM_OLD_LFARROW
  483.       PARAMETER (OBM_OLD_LFARROW=     32762)
  484.       INTEGER*2 OBM_BTSIZE
  485.       PARAMETER (OBM_BTSIZE=          32761)
  486.       INTEGER*2 OBM_CHECK
  487.       PARAMETER (OBM_CHECK=           32760)
  488.       INTEGER*2 OBM_CHECKBOXES
  489.       PARAMETER (OBM_CHECKBOXES=      32759)
  490.       INTEGER*2 OBM_BTNCORNERS
  491.       PARAMETER (OBM_BTNCORNERS=      32758)
  492.       INTEGER*2 OBM_OLD_REDUCE
  493.       PARAMETER (OBM_OLD_REDUCE=      32757)
  494.       INTEGER*2 OBM_OLD_ZOOM
  495.       PARAMETER (OBM_OLD_ZOOM=        32756)
  496.       INTEGER*2 OBM_OLD_RESTORE
  497.       PARAMETER (OBM_OLD_RESTORE=     32755)
  498.  
  499.       INTEGER*2 OCR_NORMAL
  500.       PARAMETER (OCR_NORMAL=        32512)
  501.       INTEGER*2 OCR_IBEAM
  502.       PARAMETER (OCR_IBEAM=         32513)
  503.       INTEGER*2 OCR_WAIT
  504.       PARAMETER (OCR_WAIT=          32514)
  505.       INTEGER*2 OCR_CROSS
  506.       PARAMETER (OCR_CROSS=         32515)
  507.       INTEGER*2 OCR_UP
  508.       PARAMETER (OCR_UP=            32516)
  509.       INTEGER*2 OCR_SIZE
  510.       PARAMETER (OCR_SIZE=          32640)
  511.       INTEGER*2 OCR_ICON
  512.       PARAMETER (OCR_ICON=          32641)
  513.       INTEGER*2 OCR_SIZENWSE
  514.       PARAMETER (OCR_SIZENWSE=      32642)
  515.       INTEGER*2 OCR_SIZENESW
  516.       PARAMETER (OCR_SIZENESW=      32643)
  517.       INTEGER*2 OCR_SIZEWE
  518.       PARAMETER (OCR_SIZEWE=        32644)
  519.       INTEGER*2 OCR_SIZENS
  520.       PARAMETER (OCR_SIZENS=        32645)
  521.       INTEGER*2 OCR_SIZEALL
  522.       PARAMETER (OCR_SIZEALL=       32646)
  523.       INTEGER*2 OCR_ICOCUR
  524.       PARAMETER (OCR_ICOCUR=        32647)
  525.  
  526.       INTEGER*2 OIC_SAMPLE
  527.       PARAMETER (OIC_SAMPLE=        32512)
  528.       INTEGER*2 OIC_HAND
  529.       PARAMETER (OIC_HAND=          32513)
  530.       INTEGER*2 OIC_QUES
  531.       PARAMETER (OIC_QUES=          32514)
  532.       INTEGER*2 OIC_BANG
  533.       PARAMETER (OIC_BANG=          32515)
  534.       INTEGER*2 OIC_NOTE
  535.       PARAMETER (OIC_NOTE=          32516)
  536.  
  537. $ENDIF ! OEMRESOURCE
  538.  
  539. $ENDIF ! NOKERNEL
  540.  
  541. C
  542. C GDI Section
  543. C
  544.  
  545. $IF DEFINED(GDI)
  546.  
  547. $IF DEFINED(RASTEROPS)
  548.  
  549. C
  550. C Binary raster ops
  551. C
  552.       INTEGER*2 R2_BLACK                !  0
  553.       PARAMETER (R2_BLACK=1)
  554.       INTEGER*2 R2_NOTMERGEPEN          ! DPon
  555.       PARAMETER (R2_NOTMERGEPEN=2)
  556.       INTEGER*2 R2_MASKNOTPEN           ! DPna
  557.       PARAMETER (R2_MASKNOTPEN=3)
  558.       INTEGER*2 R2_NOTCOPYPEN           ! PN
  559.       PARAMETER (R2_NOTCOPYPEN=4)
  560.       INTEGER*2 R2_MASKPENNOT           ! PDna
  561.       PARAMETER (R2_MASKPENNOT=5)
  562.       INTEGER*2 R2_NOT                  ! Dn
  563.       PARAMETER (R2_NOT=6)
  564.       INTEGER*2 R2_XORPEN               ! DPx
  565.       PARAMETER (R2_XORPEN=7)
  566.       INTEGER*2 R2_NOTMASKPEN           ! DPan
  567.       PARAMETER (R2_NOTMASKPEN=8)
  568.       INTEGER*2 R2_MASKPEN              ! DPa
  569.       PARAMETER (R2_MASKPEN=9)
  570.       INTEGER*2 R2_NOTXORPEN            ! DPxn
  571.       PARAMETER (R2_NOTXORPEN=10)
  572.       INTEGER*2 R2_NOP                  ! D
  573.       PARAMETER (R2_NOP=11)
  574.       INTEGER*2 R2_MERGENOTPEN          ! DPno
  575.       PARAMETER (R2_MERGENOTPEN=12)
  576.       INTEGER*2 R2_COPYPEN              ! P
  577.       PARAMETER (R2_COPYPEN=13)
  578.       INTEGER*2 R2_MERGEPENNOT          ! PDno
  579.       PARAMETER (R2_MERGEPENNOT=14)
  580.       INTEGER*2 R2_MERGEPEN             ! DPo
  581.       PARAMETER (R2_MERGEPEN=15)
  582.       INTEGER*2 R2_WHITE                !  1
  583.       PARAMETER (R2_WHITE=16)
  584.  
  585. C
  586. C Ternary raster operations
  587. C
  588.       INTEGER*4 SRCCOPY             ! dest = source
  589.       PARAMETER (SRCCOPY=           #00CC0020)
  590.       INTEGER*4 SRCPAINT            ! dest = source OR dest
  591.       PARAMETER (SRCPAINT=          #00EE0086)
  592.       INTEGER*4 SRCAND              ! dest = source AND dest
  593.       PARAMETER (SRCAND=            #008800C6)
  594.       INTEGER*4 SRCINVERT           ! dest = source XOR dest
  595.       PARAMETER (SRCINVERT=         #00660046)
  596.       INTEGER*4 SRCERASE            ! dest = source AND (NOT dest )
  597.       PARAMETER (SRCERASE=          #00440328)
  598.       INTEGER*4 NOTSRCCOPY          ! dest = (NOT source)
  599.       PARAMETER (NOTSRCCOPY=        #00330008)
  600.       INTEGER*4 NOTSRCERASE         ! dest = (NOT src) AND (NOT dest)
  601.       PARAMETER (NOTSRCERASE=       #001100A6)
  602.       INTEGER*4 MERGECOPY           ! dest = (source AND pattern)
  603.       PARAMETER (MERGECOPY=         #00C000CA)
  604.       INTEGER*4 MERGEPAINT          ! dest = (NOT source) OR dest
  605.       PARAMETER (MERGEPAINT=        #00BB0226)
  606.       INTEGER*4 PATCOPY             ! dest = pattern
  607.       PARAMETER (PATCOPY=           #00F00021)
  608.       INTEGER*4 PATPAINT            ! dest = DPSnoo
  609.       PARAMETER (PATPAINT=          #00FB0A09)
  610.       INTEGER*4 PATINVERT           ! dest = pattern XOR dest
  611.       PARAMETER (PATINVERT=         #005A0049)
  612.       INTEGER*4 DSTINVERT           ! dest = (NOT dest)
  613.       PARAMETER (DSTINVERT=         #00550009)
  614.       INTEGER*4 BLACKNESS           ! dest = BLACK
  615.       PARAMETER (BLACKNESS=         #00000042)
  616.       INTEGER*4 WHITENESS           ! dest = WHITE
  617.       PARAMETER (WHITENESS=         #00FF0062)
  618.  
  619. $ENDIF ! NORASTEROPS
  620.  
  621. C
  622. C StretchBlt() Modes
  623. C
  624.       INTEGER*2 BLACKONWHITE
  625.       PARAMETER (BLACKONWHITE=               1)
  626.       INTEGER*2 WHITEONBLACK
  627.       PARAMETER (WHITEONBLACK=               2)
  628.       INTEGER*2 COLORONCOLOR
  629.       PARAMETER (COLORONCOLOR=               3)
  630.  
  631. C
  632. C PolyFill() Modes
  633. C
  634.       INTEGER*2 ALTERNATE
  635.       PARAMETER (ALTERNATE=                  1)
  636.       INTEGER*2 WINDING
  637.       PARAMETER (WINDING=                    2)
  638.  
  639. C
  640. C Text Alignment Options
  641. C
  642.       INTEGER*2 TA_NOUPDATECP
  643.       PARAMETER (TA_NOUPDATECP=      0)
  644.       INTEGER*2 TA_UPDATECP
  645.       PARAMETER (TA_UPDATECP=        1)
  646.  
  647.       INTEGER*2 TA_LEFT
  648.       PARAMETER (TA_LEFT=            0)
  649.       INTEGER*2 TA_RIGHT
  650.       PARAMETER (TA_RIGHT=           2)
  651.       INTEGER*2 TA_CENTER
  652.       PARAMETER (TA_CENTER=          6)
  653.  
  654.       INTEGER*2 TA_TOP
  655.       PARAMETER (TA_TOP=             0)
  656.       INTEGER*2 TA_BOTTOM
  657.       PARAMETER (TA_BOTTOM=          8)
  658.       INTEGER*2 TA_BASELINE
  659.       PARAMETER (TA_BASELINE=        24)
  660.  
  661.       INTEGER*2 ETO_GRAYED
  662.       PARAMETER (ETO_GRAYED=         1)
  663.       INTEGER*2 ETO_OPAQUE
  664.       PARAMETER (ETO_OPAQUE=         2)
  665.       INTEGER*2 ETO_CLIPPED
  666.       PARAMETER (ETO_CLIPPED=        4)
  667.  
  668.       INTEGER*2 ASPECT_FILTERING
  669.       PARAMETER (ASPECT_FILTERING=   #0001)
  670.  
  671. $IF DEFINED(METAFILE)
  672.  
  673. C
  674. C Metafile Functions
  675. C
  676.       INTEGER*2 META_SETBKCOLOR
  677.       PARAMETER (META_SETBKCOLOR=            #0201)
  678.       INTEGER*2 META_SETBKMODE
  679.       PARAMETER (META_SETBKMODE=             #0102)
  680.       INTEGER*2 META_SETMAPMODE
  681.       PARAMETER (META_SETMAPMODE=            #0103)
  682.       INTEGER*2 META_SETROP2
  683.       PARAMETER (META_SETROP2=               #0104)
  684.       INTEGER*2 META_SETRELABS
  685.       PARAMETER (META_SETRELABS=             #0105)
  686.       INTEGER*2 META_SETPOLYFILLMODE
  687.       PARAMETER (META_SETPOLYFILLMODE=       #0106)
  688.       INTEGER*2 META_SETSTRETCHBLTMODE
  689.       PARAMETER (META_SETSTRETCHBLTMODE=     #0107)
  690.       INTEGER*2 META_SETTEXTCHAREXTRA
  691.       PARAMETER (META_SETTEXTCHAREXTRA=      #0108)
  692.       INTEGER*2 META_SETTEXTCOLOR
  693.       PARAMETER (META_SETTEXTCOLOR=          #0209)
  694.       INTEGER*2 META_SETTEXTJUSTIFICATION
  695.       PARAMETER (META_SETTEXTJUSTIFICATION=  #020A)
  696.       INTEGER*2 META_SETWINDOWORG
  697.       PARAMETER (META_SETWINDOWORG=          #020B)
  698.       INTEGER*2 META_SETWINDOWEXT
  699.       PARAMETER (META_SETWINDOWEXT=          #020C)
  700.       INTEGER*2 META_SETVIEWPORTORG
  701.       PARAMETER (META_SETVIEWPORTORG=        #020D)
  702.       INTEGER*2 META_SETVIEWPORTEXT
  703.       PARAMETER (META_SETVIEWPORTEXT=        #020E)
  704.       INTEGER*2 META_OFFSETWINDOWORG
  705.       PARAMETER (META_OFFSETWINDOWORG=       #020F)
  706.       INTEGER*2 META_SCALEWINDOWEXT
  707.       PARAMETER (META_SCALEWINDOWEXT=        #0400)
  708.       INTEGER*2 META_OFFSETVIEWPORTORG
  709.       PARAMETER (META_OFFSETVIEWPORTORG=     #0211)
  710.       INTEGER*2 META_SCALEVIEWPORTEXT
  711.       PARAMETER (META_SCALEVIEWPORTEXT=      #0412)
  712.       INTEGER*2 META_LINETO
  713.       PARAMETER (META_LINETO=                #0213)
  714.       INTEGER*2 META_MOVETO
  715.       PARAMETER (META_MOVETO=                #0214)
  716.       INTEGER*2 META_EXCLUDECLIPRECT
  717.       PARAMETER (META_EXCLUDECLIPRECT=       #0415)
  718.       INTEGER*2 META_INTERSECTCLIPRECT
  719.       PARAMETER (META_INTERSECTCLIPRECT=     #0416)
  720.       INTEGER*2 META_ARC
  721.       PARAMETER (META_ARC=                   #0817)
  722.       INTEGER*2 META_ELLIPSE
  723.       PARAMETER (META_ELLIPSE=               #0418)
  724.       INTEGER*2 META_FLOODFILL
  725.       PARAMETER (META_FLOODFILL=             #0419)
  726.       INTEGER*2 META_PIE
  727.       PARAMETER (META_PIE=                   #081A)
  728.       INTEGER*2 META_RECTANGLE
  729.       PARAMETER (META_RECTANGLE=             #041B)
  730.       INTEGER*2 META_ROUNDRECT
  731.       PARAMETER (META_ROUNDRECT=             #061C)
  732.       INTEGER*2 META_PATBLT
  733.       PARAMETER (META_PATBLT=                #061D)
  734.       INTEGER*2 META_SAVEDC
  735.       PARAMETER (META_SAVEDC=                #001E)
  736.       INTEGER*2 META_SETPIXEL
  737.       PARAMETER (META_SETPIXEL=              #041F)
  738.       INTEGER*2 META_OFFSETCLIPRGN
  739.       PARAMETER (META_OFFSETCLIPRGN=         #0220)
  740.       INTEGER*2 META_TEXTOUT
  741.       PARAMETER (META_TEXTOUT=               #0521)
  742.       INTEGER*2 META_BITBLT
  743.       PARAMETER (META_BITBLT=                #0922)
  744.       INTEGER*2 META_STRETCHBLT
  745.       PARAMETER (META_STRETCHBLT=            #0B23)
  746.       INTEGER*2 META_POLYGON
  747.       PARAMETER (META_POLYGON=               #0324)
  748.       INTEGER*2 META_POLYLINE
  749.       PARAMETER (META_POLYLINE=              #0325)
  750.       INTEGER*2 META_ESCAPE
  751.       PARAMETER (META_ESCAPE=                #0626)
  752.       INTEGER*2 META_RESTOREDC
  753.       PARAMETER (META_RESTOREDC=             #0127)
  754.       INTEGER*2 META_FILLREGION
  755.       PARAMETER (META_FILLREGION=            #0228)
  756.       INTEGER*2 META_FRAMEREGION
  757.       PARAMETER (META_FRAMEREGION=           #0429)
  758.       INTEGER*2 META_INVERTREGION
  759.       PARAMETER (META_INVERTREGION=          #012A)
  760.       INTEGER*2 META_PAINTREGION
  761.       PARAMETER (META_PAINTREGION=           #012B)
  762.       INTEGER*2 META_SELECTCLIPREGION
  763.       PARAMETER (META_SELECTCLIPREGION=      #012C)
  764.       INTEGER*2 META_SELECTOBJECT
  765.       PARAMETER (META_SELECTOBJECT=          #012D)
  766.       INTEGER*2 META_SETTEXTALIGN
  767.       PARAMETER (META_SETTEXTALIGN=          #012E)
  768.       INTEGER*2 META_DRAWTEXT
  769.       PARAMETER (META_DRAWTEXT=              #062F)
  770.  
  771.       INTEGER*2 META_CHORD
  772.       PARAMETER (META_CHORD=                 #0830)
  773.       INTEGER*2 META_SETMAPPERFLAGS
  774.       PARAMETER (META_SETMAPPERFLAGS=        #0231)
  775.       INTEGER*2 META_EXTTEXTOUT
  776.       PARAMETER (META_EXTTEXTOUT=            #0a32 )
  777.       INTEGER*2 META_SETDIBTODEV
  778.       PARAMETER (META_SETDIBTODEV=           #0d33)
  779.       INTEGER*2 META_SELECTPALETTE
  780.       PARAMETER (META_SELECTPALETTE=         #0234)
  781.       INTEGER*2 META_REALIZEPALETTE
  782.       PARAMETER (META_REALIZEPALETTE=        #0035)
  783.       INTEGER*2 META_ANIMATEPALETTE
  784.       PARAMETER (META_ANIMATEPALETTE=        #0436)
  785.       INTEGER*2 META_SETPALENTRIES
  786.       PARAMETER (META_SETPALENTRIES=         #0037)
  787.       INTEGER*2 META_POLYPOLYGON
  788.       PARAMETER (META_POLYPOLYGON=           #0538)
  789.       INTEGER*2 META_RESIZEPALETTE
  790.       PARAMETER (META_RESIZEPALETTE=         #0139)
  791.  
  792.       INTEGER*2 META_DIBBITBLT
  793.       PARAMETER (META_DIBBITBLT=             #0940)
  794.       INTEGER*2 META_DIBSTRETCHBLT
  795.       PARAMETER (META_DIBSTRETCHBLT=         #0b41)
  796.       INTEGER*2 META_DIBCREATEPATTERNBRUSH
  797.       PARAMETER (META_DIBCREATEPATTERNBRUSH= #0142)
  798.       INTEGER*2 META_STRETCHDIB
  799.       PARAMETER (META_STRETCHDIB=            #0f43)
  800.  
  801.       INTEGER*2 META_DELETEOBJECT
  802.       PARAMETER (META_DELETEOBJECT=          #01f0)
  803.  
  804.       INTEGER*2 META_CREATEPALETTE
  805.       PARAMETER (META_CREATEPALETTE=         #00f7)
  806.       INTEGER*2 META_CREATEBRUSH
  807.       PARAMETER (META_CREATEBRUSH=           #00F8)
  808.       INTEGER*2 META_CREATEPATTERNBRUSH
  809.       PARAMETER (META_CREATEPATTERNBRUSH=    #01F9)
  810.       INTEGER*2 META_CREATEPENINDIRECT
  811.       PARAMETER (META_CREATEPENINDIRECT=     #02FA)
  812.       INTEGER*2 META_CREATEFONTINDIRECT
  813.       PARAMETER (META_CREATEFONTINDIRECT=    #02FB)
  814.       INTEGER*2 META_CREATEBRUSHINDIRECT
  815.       PARAMETER (META_CREATEBRUSHINDIRECT=   #02FC)
  816.       INTEGER*2 META_CREATEBITMAPINDIRECT
  817.       PARAMETER (META_CREATEBITMAPINDIRECT=  #02FD)
  818.       INTEGER*2 META_CREATEBITMAP
  819.       PARAMETER (META_CREATEBITMAP=          #06FE)
  820.       INTEGER*2 META_CREATEREGION
  821.       PARAMETER (META_CREATEREGION=          #06FF)
  822.  
  823. $ENDIF ! NOMETAFILE
  824.  
  825. C
  826. C GDI Escapes
  827. C
  828.       INTEGER*2 NEWFRAME
  829.       PARAMETER (NEWFRAME=                   1)
  830.       INTEGER*2 ABORTDOC
  831.       PARAMETER (ABORTDOC=                   2)
  832.       INTEGER*2 NEXTBAND
  833.       PARAMETER (NEXTBAND=                   3)
  834.       INTEGER*2 SETCOLORTABLE
  835.       PARAMETER (SETCOLORTABLE=              4)
  836.       INTEGER*2 GETCOLORTABLE
  837.       PARAMETER (GETCOLORTABLE=              5)
  838.       INTEGER*2 FLUSHOUTPUT
  839.       PARAMETER (FLUSHOUTPUT=                6)
  840.       INTEGER*2 DRAFTMODE
  841.       PARAMETER (DRAFTMODE=                  7)
  842.       INTEGER*2 QUERYESCSUPPORT
  843.       PARAMETER (QUERYESCSUPPORT=            8)
  844.       INTEGER*2 SETABORTPROC
  845.       PARAMETER (SETABORTPROC=               9)
  846.       INTEGER*2 STARTDOC
  847.       PARAMETER (STARTDOC=                   10)
  848.       INTEGER*2 ENDDOC
  849.       PARAMETER (ENDDOC=                     11)
  850.       INTEGER*2 GETPHYSPAGESIZE
  851.       PARAMETER (GETPHYSPAGESIZE=            12)
  852.       INTEGER*2 GETPRINTINGOFFSET
  853.       PARAMETER (GETPRINTINGOFFSET=          13)
  854.       INTEGER*2 GETSCALINGFACTOR
  855.       PARAMETER (GETSCALINGFACTOR=           14)
  856.       INTEGER*2 MFCOMMENT
  857.       PARAMETER (MFCOMMENT=                  15)
  858.       INTEGER*2 GETPENWIDTH
  859.       PARAMETER (GETPENWIDTH=                16)
  860.       INTEGER*2 SETCOPYCOUNT
  861.       PARAMETER (SETCOPYCOUNT=               17)
  862.       INTEGER*2 SELECTPAPERSOURCE
  863.       PARAMETER (SELECTPAPERSOURCE=          18)
  864.       INTEGER*2 DEVICEDATA
  865.       PARAMETER (DEVICEDATA=                 19)
  866.       INTEGER*2 PASSTHROUGH
  867.       PARAMETER (PASSTHROUGH=                19)
  868.       INTEGER*2 GETTECHNOLGY
  869.       PARAMETER (GETTECHNOLGY=               20)
  870.       INTEGER*2 GETTECHNOLOGY
  871.       PARAMETER (GETTECHNOLOGY=              20)
  872.       INTEGER*2 SETENDCAP
  873.       PARAMETER (SETENDCAP=                  21)
  874.       INTEGER*2 SETLINEJOIN
  875.       PARAMETER (SETLINEJOIN=                22)
  876.       INTEGER*2 SETMITERLIMIT
  877.       PARAMETER (SETMITERLIMIT=              23)
  878.       INTEGER*2 BANDINFO
  879.       PARAMETER (BANDINFO=                   24)
  880.       INTEGER*2 DRAWPATTERNRECT
  881.       PARAMETER (DRAWPATTERNRECT=            25)
  882.       INTEGER*2 GETVECTORPENSIZE
  883.       PARAMETER (GETVECTORPENSIZE=           26)
  884.       INTEGER*2 GETVECTORBRUSHSIZE
  885.       PARAMETER (GETVECTORBRUSHSIZE=         27)
  886.       INTEGER*2 ENABLEDUPLEX
  887.       PARAMETER (ENABLEDUPLEX=               28)
  888.       INTEGER*2 GETSETPAPERBINS
  889.       PARAMETER (GETSETPAPERBINS=            29)
  890.       INTEGER*2 GETSETPRINTORIENT
  891.       PARAMETER (GETSETPRINTORIENT=          30)
  892.       INTEGER*2 ENUMPAPERBINS
  893.       PARAMETER (ENUMPAPERBINS=              31)
  894.       INTEGER*2 SETDIBSCALING
  895.       PARAMETER (SETDIBSCALING=              32)
  896.       INTEGER*2 EPSPRINTING
  897.       PARAMETER (EPSPRINTING=                33)
  898.       INTEGER*2 ENUMPAPERMETRICS
  899.       PARAMETER (ENUMPAPERMETRICS=           34)
  900.       INTEGER*2 GETSETPAPERMETRICS
  901.       PARAMETER (GETSETPAPERMETRICS=         35)
  902.       INTEGER*2 POSTSCRIPT_DATA
  903.       PARAMETER (POSTSCRIPT_DATA=            37)
  904.       INTEGER*2 POSTSCRIPT_IGNORE
  905.       PARAMETER (POSTSCRIPT_IGNORE=          38)
  906.       INTEGER*2 GETEXTENDEDTEXTMETRICS
  907.       PARAMETER (GETEXTENDEDTEXTMETRICS=     256)
  908.       INTEGER*2 GETEXTENTTABLE
  909.       PARAMETER (GETEXTENTTABLE=             257)
  910.       INTEGER*2 GETPAIRKERNTABLE
  911.       PARAMETER (GETPAIRKERNTABLE=           258)
  912.       INTEGER*2 GETTRACKKERNTABLE
  913.       PARAMETER (GETTRACKKERNTABLE=          259)
  914.       INTEGER*2 EXT_TEXTOUT ! EXISTS AS FUNCTION
  915.       PARAMETER (EXT_TEXTOUT=                 512)
  916.       INTEGER*2 ENABLERELATIVEWIDTHS
  917.       PARAMETER (ENABLERELATIVEWIDTHS=       768)
  918.       INTEGER*2 ENABLEPAIRKERNING
  919.       PARAMETER (ENABLEPAIRKERNING=          769)
  920.       INTEGER*2 SETKERNTRACK
  921.       PARAMETER (SETKERNTRACK=               770)
  922.       INTEGER*2 SETALLJUSTVALUES
  923.       PARAMETER (SETALLJUSTVALUES=           771)
  924.       INTEGER*2 SETCHARSET
  925.       PARAMETER (SETCHARSET=                 772)
  926.  
  927.       INTEGER*2 STRETCH_BLT ! CONFLICTS WITH FUNCTION STRETCHBLT
  928.       PARAMETER (STRETCH_BLT=                2048)
  929.       INTEGER*2 BEGIN_PATH
  930.       PARAMETER (BEGIN_PATH=                 4096)
  931.       INTEGER*2 CLIP_TO_PATH
  932.       PARAMETER (CLIP_TO_PATH=               4097)
  933.       INTEGER*2 END_PATH
  934.       PARAMETER (END_PATH=                   4098)
  935.       INTEGER*2 EXT_DEVICE_CAPS
  936.       PARAMETER (EXT_DEVICE_CAPS=            4099)
  937.       INTEGER*2 RESTORE_CTM
  938.       PARAMETER (RESTORE_CTM=                4100)
  939.       INTEGER*2 SAVE_CTM
  940.       PARAMETER (SAVE_CTM=                   4101)
  941.       INTEGER*2 SET_ARC_DIRECTION
  942.       PARAMETER (SET_ARC_DIRECTION=          4102)
  943.       INTEGER*2 SET_BACKGROUND_COLOR
  944.       PARAMETER (SET_BACKGROUND_COLOR=       4103)
  945.       INTEGER*2 SET_POLY_MODE
  946.       PARAMETER (SET_POLY_MODE=              4104)
  947.       INTEGER*2 SET_SCREEN_ANGLE
  948.       PARAMETER (SET_SCREEN_ANGLE=           4105)
  949.       INTEGER*2 SET_SPREAD
  950.       PARAMETER (SET_SPREAD=                 4106)
  951.       INTEGER*2 TRANSFORM_CTM
  952.       PARAMETER (TRANSFORM_CTM=              4107)
  953.       INTEGER*2 SET_CLIP_BOX
  954.       PARAMETER (SET_CLIP_BOX=               4108)
  955.       INTEGER*2 SET_BOUNDS
  956.       PARAMETER (SET_BOUNDS=                 4109)
  957.       INTEGER*2 SET_MIRROR_MODE
  958.       PARAMETER (SET_MIRROR_MODE=            4110)
  959.  
  960. C
  961. C Spooler Error Codes
  962. C
  963.       INTEGER*2 SP_NOTREPORTED
  964.       PARAMETER (SP_NOTREPORTED=             #4000)
  965.       INTEGER*2 SP_ERROR
  966.       PARAMETER (SP_ERROR=                   -1)
  967.       INTEGER*2 SP_APPABORT
  968.       PARAMETER (SP_APPABORT=                -2)
  969.       INTEGER*2 SP_USERABORT
  970.       PARAMETER (SP_USERABORT=               -3)
  971.       INTEGER*2 SP_OUTOFDISK
  972.       PARAMETER (SP_OUTOFDISK=               -4)
  973.       INTEGER*2 SP_OUTOFMEMORY
  974.       PARAMETER (SP_OUTOFMEMORY=             -5)
  975.  
  976.       INTEGER*2 PR_JOBSTATUS
  977.       PARAMETER (PR_JOBSTATUS=               #0000)
  978.  
  979. C
  980. C Object Definitions for EnumObjects()
  981. C
  982.       INTEGER*2 OBJ_PEN
  983.       PARAMETER (OBJ_PEN=                    1)
  984.       INTEGER*2 OBJ_BRUSH
  985.       PARAMETER (OBJ_BRUSH=                  2)
  986.  
  987. C
  988. C Bitmap Header Definition
  989. C
  990.       STRUCTURE /BITMAP/
  991.      INTEGER*2 bmType
  992.      INTEGER*2 bmWidth
  993.      INTEGER*2 bmHeight
  994.      INTEGER*2 bmWidthBytes
  995.      INTEGER*2 bmPlanes
  996.      INTEGER*2 bmBitsPixel
  997.      INTEGER*4 bmBits ! LPSTR
  998.       END STRUCTURE
  999. !typedef BITMAP             *PBITMAP;
  1000. !typedef BITMAP NEAR        *NPBITMAP;
  1001. !typedef BITMAP FAR         *LPBITMAP;
  1002.  
  1003.       STRUCTURE /RGBTRIPLE/
  1004.      BYTE rgbtBlue
  1005.      BYTE rgbtGreen
  1006.      BYTE rgbtRed
  1007.       END STRUCTURE
  1008.  
  1009.       STRUCTURE /RGBQUAD/
  1010.      BYTE rgbBlue
  1011.      BYTE rgbGreen
  1012.      BYTE rgbRed
  1013.      BYTE rgbReserved
  1014.       END STRUCTURE
  1015.  
  1016. C
  1017. C structures for defining DIBs
  1018. C
  1019.       STRUCTURE /BITMAPCOREHEADER/
  1020.      INTEGER*4 bcSize               ! used to get to color table
  1021.      INTEGER*2 bcWidth
  1022.      INTEGER*2 bcHeight
  1023.      INTEGER*2 bcPlanes
  1024.      INTEGER*2 bcBitCount
  1025.       END STRUCTURE
  1026. !typedef BITMAPCOREHEADER FAR *LPBITMAPCOREHEADER;
  1027. !typedef BITMAPCOREHEADER *PBITMAPCOREHEADER;
  1028.  
  1029.  
  1030.       STRUCTURE /BITMAPINFOHEADER/
  1031.      INTEGER*4 biSize
  1032.      INTEGER*4 biWidth
  1033.      INTEGER*4 biHeight
  1034.      INTEGER*2 biPlanes
  1035.      INTEGER*2 biBitCount
  1036.  
  1037.      INTEGER*4 biCompression
  1038.      INTEGER*4 biSizeImage
  1039.      INTEGER*4 biXPelsPerMeter
  1040.      INTEGER*4 biYPelsPerMeter
  1041.      INTEGER*4 biClrUsed
  1042.      INTEGER*4 biClrImportant
  1043.       END STRUCTURE
  1044.  
  1045. !typedef BITMAPINFOHEADER FAR *LPBITMAPINFOHEADER;
  1046. !typedef BITMAPINFOHEADER *PBITMAPINFOHEADER;
  1047.  
  1048. C
  1049. C constants for the biCompression field
  1050. C
  1051.       INTEGER*4 BI_RGB
  1052.       PARAMETER (BI_RGB=      0)
  1053.       INTEGER*4 BI_RLE8
  1054.       PARAMETER (BI_RLE8=     1)
  1055.       INTEGER*4 BI_RLE4
  1056.       PARAMETER (BI_RLE4=     2)
  1057.  
  1058.       STRUCTURE /BITMAPINFO/
  1059.      RECORD /BITMAPINFOHEADER/ bmiHeader
  1060.      RECORD /RGBQUAD/          bmiColors(1)
  1061.       END STRUCTURE
  1062.  
  1063. !typedef BITMAPINFO FAR *LPBITMAPINFO;
  1064. !typedef BITMAPINFO *PBITMAPINFO;
  1065.  
  1066.       STRUCTURE /BITMAPCOREINFO/
  1067.      RECORD /BITMAPCOREHEADER/ bmciHeader
  1068.      RECORD /RGBTRIPLE/        bmciColors(1)
  1069.       END STRUCTURE
  1070.  
  1071. !typedef BITMAPCOREINFO FAR *LPBITMAPCOREINFO;
  1072. !typedef BITMAPCOREINFO *PBITMAPCOREINFO;
  1073.  
  1074.       STRUCTURE /BITMAPFILEHEADER/
  1075.      INTEGER*2 bfType
  1076.      INTEGER*4 bfSize
  1077.      INTEGER*2 bfReserved1
  1078.      INTEGER*2 bfReserved2
  1079.      INTEGER*4 bfOffBits
  1080.       END STRUCTURE
  1081.  
  1082. !typedef BITMAPFILEHEADER FAR *LPBITMAPFILEHEADER;
  1083. !typedef BITMAPFILEHEADER *PBITMAPFILEHEADER;
  1084.  
  1085. !#define MAKEPOINT(l)       (*((POINT FAR *)&(l)))
  1086.  
  1087. $IF DEFINED(METAFILE)
  1088.  
  1089. C
  1090. C Clipboard Metafile Picture Structure
  1091. C
  1092.       STRUCTURE /HANDLETABLE/
  1093.      INTEGER*2 objectHandle(1) ! HANDLE
  1094.       END STRUCTURE
  1095.  
  1096. !typedef HANDLETABLE        *PHANDLETABLE;
  1097. !typedef HANDLETABLE FAR     *LPHANDLETABLE;
  1098.  
  1099.       STRUCTURE /METARECORD/
  1100.      INTEGER*4 rdSize
  1101.      INTEGER*2 rdFunction
  1102.      INTEGER*2 rdParm(1)
  1103.       END STRUCTURE
  1104.  
  1105. !typedef METARECORD         *PMETARECORD;
  1106. !typedef METARECORD FAR     *LPMETARECORD;
  1107.  
  1108.       STRUCTURE /METAFILEPICT/
  1109.      INTEGER*2 mm
  1110.      INTEGER*2 xExt
  1111.      INTEGER*2 yExt
  1112.      INTEGER*2 hMF
  1113.       END STRUCTURE
  1114.  
  1115. !typedef METAFILEPICT FAR    *LPMETAFILEPICT;
  1116.  
  1117.       STRUCTURE /METAHEADER/
  1118.      INTEGER*2 mtType
  1119.      INTEGER*2 mtHeaderSize
  1120.      INTEGER*2 mtVersion
  1121.      INTEGER*4 mtSize
  1122.      INTEGER*2 mtNoObjects
  1123.      INTEGER*4 mtMaxRecord
  1124.      INTEGER*2 mtNoParameters
  1125.       END STRUCTURE
  1126.  
  1127. $ENDIF ! NOMETAFILE
  1128.  
  1129. $IF DEFINED(TEXTMETRIC)
  1130.  
  1131.       STRUCTURE /TEXTMETRIC/
  1132.      INTEGER*2 tmHeight
  1133.      INTEGER*2 tmAscent
  1134.      INTEGER*2 tmDescent
  1135.      INTEGER*2 tmInternalLeading
  1136.      INTEGER*2 tmExternalLeading
  1137.      INTEGER*2 tmAveCharWidth
  1138.      INTEGER*2 tmMaxCharWidth
  1139.      INTEGER*2 tmWeight
  1140.      BYTE tmItalic
  1141.      BYTE tmUnderlined
  1142.      BYTE tmStruckOut
  1143.      BYTE tmFirstChar
  1144.      BYTE tmLastChar
  1145.      BYTE tmDefaultChar
  1146.      BYTE tmBreakChar
  1147.      BYTE tmPitchAndFamily
  1148.      BYTE tmCharSet
  1149.      INTEGER*2 tmOverhang
  1150.      INTEGER*2 tmDigitizedAspectX
  1151.      INTEGER*2 tmDigitizedAspectY
  1152.       END STRUCTURE
  1153.  
  1154. !typedef TEXTMETRIC         *PTEXTMETRIC;
  1155. !typedef TEXTMETRIC NEAR     *NPTEXTMETRIC;
  1156. !typedef TEXTMETRIC FAR     *LPTEXTMETRIC;
  1157.  
  1158. $ENDIF ! NOTEXTMETRIC
  1159.  
  1160. C
  1161. C GDI Logical Objects:
  1162. C
  1163. C Pel Array
  1164. C
  1165.       STRUCTURE /PELARRAY/
  1166.      INTEGER*2 paXCount
  1167.      INTEGER*2 paYCount
  1168.      INTEGER*2 paXExt
  1169.      INTEGER*2 paYExt
  1170.      BYTE paRGBs
  1171.       END STRUCTURE
  1172.  
  1173. !typedef PELARRAY           *PPELARRAY;
  1174. !typedef PELARRAY NEAR      *NPPELARRAY;
  1175. !typedef PELARRAY FAR       *LPPELARRAY;
  1176.  
  1177. C
  1178. C Logical Brush (or Pattern)
  1179. C
  1180.       STRUCTURE /LOGBRUSH/
  1181.      INTEGER*2 lbStyle
  1182.      INTEGER*4 lbColor
  1183.      INTEGER*2 lbHatch
  1184.       END STRUCTURE
  1185.  
  1186. !typedef LOGBRUSH           *PLOGBRUSH;
  1187. !typedef LOGBRUSH NEAR      *NPLOGBRUSH;
  1188. !typedef LOGBRUSH FAR       *LPLOGBRUSH;
  1189.  
  1190. !typedef LOGBRUSH           PATTERN;
  1191. !typedef PATTERN            *PPATTERN;
  1192. !typedef PATTERN NEAR       *NPPATTERN;
  1193. !typedef PATTERN FAR        *LPPATTERN;
  1194.  
  1195. C
  1196. C Logical Pen
  1197. C
  1198.       STRUCTURE /LOGPEN/
  1199.      INTEGER*2 lopnStyle
  1200.      RECORD /POINT/ lopnWidth
  1201.      INTEGER*4 lopnColor
  1202.       END STRUCTURE
  1203.  
  1204. !typedef LOGPEN             *PLOGPEN;
  1205. !typedef LOGPEN NEAR        *NPLOGPEN;
  1206. !typedef LOGPEN FAR         *LPLOGPEN;
  1207.  
  1208.       STRUCTURE /PALETTEENTRY/
  1209.      BYTE peRed
  1210.      BYTE peGreen
  1211.      BYTE peBlue
  1212.      BYTE peFlags
  1213.       END STRUCTURE
  1214.  
  1215. !typedef PALETTEENTRY FAR  *LPPALETTEENTRY;
  1216.  
  1217. C
  1218. C Logical Palette
  1219. C
  1220.       STRUCTURE /LOGPALETTE/
  1221.      INTEGER*2 palVersion
  1222.      INTEGER*2 palNumEntries
  1223.      RECORD /PALETTEENTRY/ palPalEntry(1)
  1224.       END STRUCTURE
  1225.  
  1226. !typedef LOGPALETTE         *PLOGPALETTE;
  1227. !typedef LOGPALETTE NEAR            *NPLOGPALETTE;
  1228. !typedef LOGPALETTE FAR     *LPLOGPALETTE;
  1229.  
  1230.  
  1231. C
  1232. C Logical Font
  1233. C
  1234.       INTEGER*2 LF_FACESIZE
  1235.       PARAMETER (LF_FACESIZE=32)
  1236.  
  1237.       STRUCTURE /LOGFONT/
  1238.      INTEGER*2 lfHeight
  1239.      INTEGER*2 lfWidth
  1240.      INTEGER*2 lfEscapement
  1241.      INTEGER*2 lfOrientation
  1242.      INTEGER*2 lfWeight
  1243.      BYTE lfItalic
  1244.      BYTE lfUnderline
  1245.      BYTE lfStrikeOut
  1246.      BYTE lfCharSet
  1247.      BYTE lfOutPrecision
  1248.      BYTE lfClipPrecision
  1249.      BYTE lfQuality
  1250.      BYTE lfPitchAndFamily
  1251.      BYTE lfFaceName(LF_FACESIZE)
  1252.       END STRUCTURE
  1253.  
  1254. !typedef LOGFONT            *PLOGFONT;
  1255. !typedef LOGFONT NEAR       *NPLOGFONT;
  1256. !typedef LOGFONT FAR        *LPLOGFONT;
  1257.  
  1258.       INTEGER*2 OUT_DEFAULT_PRECIS
  1259.       PARAMETER (OUT_DEFAULT_PRECIS=0)
  1260.       INTEGER*2 OUT_STRING_PRECIS
  1261.       PARAMETER (OUT_STRING_PRECIS=1)
  1262.       INTEGER*2 OUT_CHARACTER_PRECIS
  1263.       PARAMETER (OUT_CHARACTER_PRECIS=2)
  1264.       INTEGER*2 OUT_STROKE_PRECIS
  1265.       PARAMETER (OUT_STROKE_PRECIS=3)
  1266.  
  1267.       INTEGER*2 CLIP_DEFAULT_PRECIS
  1268.       PARAMETER (CLIP_DEFAULT_PRECIS=0)
  1269.       INTEGER*2 CLIP_CHARACTER_PRECIS
  1270.       PARAMETER (CLIP_CHARACTER_PRECIS=1)
  1271.       INTEGER*2 CLIP_STROKE_PRECIS
  1272.       PARAMETER (CLIP_STROKE_PRECIS=2)
  1273.  
  1274.       INTEGER*2 DEFAULT_QUALITY
  1275.       PARAMETER (DEFAULT_QUALITY=0)
  1276.       INTEGER*2 DRAFT_QUALITY
  1277.       PARAMETER (DRAFT_QUALITY= 1)
  1278.       INTEGER*2 PROOF_QUALITY
  1279.       PARAMETER (PROOF_QUALITY= 2)
  1280.  
  1281.       INTEGER*2 DEFAULT_PITCH
  1282.       PARAMETER (DEFAULT_PITCH=0)
  1283.       INTEGER*2 FIXED_PITCH
  1284.       PARAMETER (FIXED_PITCH=1)
  1285.       INTEGER*2 VARIABLE_PITCH
  1286.       PARAMETER (VARIABLE_PITCH=2)
  1287.  
  1288.       INTEGER*2 ANSI_CHARSET
  1289.       PARAMETER (ANSI_CHARSET=0)
  1290.       INTEGER*2 SYMBOL_CHARSET
  1291.       PARAMETER (SYMBOL_CHARSET=2)
  1292.       INTEGER*2 SHIFTJIS_CHARSET
  1293.       PARAMETER (SHIFTJIS_CHARSET=128)
  1294.       INTEGER*2 OEM_CHARSET
  1295.       PARAMETER (OEM_CHARSET=255)
  1296.  
  1297. C
  1298. C Font Families
  1299. C
  1300.       INTEGER*2 FF_DONTCARE      ! (0<<4) Don't care or don't know
  1301.       PARAMETER (FF_DONTCARE=0)
  1302.       INTEGER*2 FF_ROMAN         ! (1<<4) Variable stroke width, serifed
  1303.       PARAMETER (FF_ROMAN=16)    !        Times Roman, Century Schoolbook, etc.
  1304.       INTEGER*2 FF_SWISS         ! (2<<4) Variable stroke width, sans-serifed
  1305.       PARAMETER (FF_SWISS=32)    !        Helvetica, Swiss, etc.
  1306.       INTEGER*2 FF_MODERN        ! (3<<4) Constant stroke width, serifed or sans-serifed
  1307.       PARAMETER (FF_MODERN=48)   !        Pica, Elite, Courier, etc.
  1308.       INTEGER*2 FF_SCRIPT        ! (4<<4) Cursive, etc.
  1309.       PARAMETER (FF_SCRIPT=64)
  1310.       INTEGER*2 FF_DECORATIVE    ! (5<<4) Old English, etc.
  1311.       PARAMETER (FF_DECORATIVE=80)
  1312. C
  1313. C Font Weights
  1314. C
  1315.       INTEGER*2 FW_DONTCARE
  1316.       PARAMETER (FW_DONTCARE=0)
  1317.       INTEGER*2 FW_THIN
  1318.       PARAMETER (FW_THIN=100)
  1319.       INTEGER*2 FW_EXTRALIGHT
  1320.       PARAMETER (FW_EXTRALIGHT=200)
  1321.       INTEGER*2 FW_LIGHT
  1322.       PARAMETER (FW_LIGHT=300)
  1323.       INTEGER*2 FW_NORMAL
  1324.       PARAMETER (FW_NORMAL=400)
  1325.       INTEGER*2 FW_MEDIUM
  1326.       PARAMETER (FW_MEDIUM=500)
  1327.       INTEGER*2 FW_SEMIBOLD
  1328.       PARAMETER (FW_SEMIBOLD=600)
  1329.       INTEGER*2 FW_BOLD
  1330.       PARAMETER (FW_BOLD=700)
  1331.       INTEGER*2 FW_EXTRABOLD
  1332.       PARAMETER (FW_EXTRABOLD=800)
  1333.       INTEGER*2 FW_HEAVY
  1334.       PARAMETER (FW_HEAVY=900)
  1335.  
  1336.       INTEGER*2 FW_ULTRALIGHT
  1337.       PARAMETER (FW_ULTRALIGHT=FW_EXTRALIGHT)
  1338.       INTEGER*2 FW_REGULAR
  1339.       PARAMETER (FW_REGULAR=FW_NORMAL)
  1340.       INTEGER*2 FW_DEMIBOLD
  1341.       PARAMETER (FW_DEMIBOLD=FW_SEMIBOLD)
  1342.       INTEGER*2 FW_ULTRABOLD
  1343.       PARAMETER (FW_ULTRABOLD=FW_EXTRABOLD)
  1344.       INTEGER*2 FW_BLACK
  1345.       PARAMETER (FW_BLACK=FW_HEAVY)
  1346.  
  1347. C
  1348. C EnumFonts Masks
  1349. C
  1350.       INTEGER*2 RASTER_FONTTYPE
  1351.       PARAMETER (RASTER_FONTTYPE=#0001)
  1352.       INTEGER*2 DEVICE_FONTTYPE
  1353.       PARAMETER (DEVICE_FONTTYPE=#0002)
  1354.  
  1355. !#define RGB(r,g,b)          ((DWORD)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
  1356. !#define PALETTERGB(r,g,b)   (0x02000000 | RGB(r,g,b))
  1357. !#define PALETTEINDEX(i)     ((DWORD)(0x01000000 | (WORD)(i)))
  1358.  
  1359. !#define GetRValue(rgb)     ((BYTE)(rgb))
  1360. !#define GetGValue(rgb)     ((BYTE)(((WORD)(rgb)) >> 8))
  1361. !#define GetBValue(rgb)     ((BYTE)((rgb)>>16))
  1362.  
  1363. C
  1364. C Background Modes
  1365. C
  1366.       INTEGER*2 TRANSPARENT
  1367.       PARAMETER (TRANSPARENT=1)
  1368.       INTEGER*2 OPAQUE
  1369.       PARAMETER (OPAQUE=2)
  1370.  
  1371. C
  1372. C Mapping Modes
  1373. C
  1374.       INTEGER*2 MM_TEXT
  1375.       PARAMETER (MM_TEXT=1)
  1376.       INTEGER*2 MM_LOMETRIC
  1377.       PARAMETER (MM_LOMETRIC=2)
  1378.       INTEGER*2 MM_HIMETRIC
  1379.       PARAMETER (MM_HIMETRIC=3)
  1380.       INTEGER*2 MM_LOENGLISH
  1381.       PARAMETER (MM_LOENGLISH=4)
  1382.       INTEGER*2 MM_HIENGLISH
  1383.       PARAMETER (MM_HIENGLISH=5)
  1384.       INTEGER*2 MM_TWIPS
  1385.       PARAMETER (MM_TWIPS=6)
  1386.       INTEGER*2 MM_ISOTROPIC
  1387.       PARAMETER (MM_ISOTROPIC=7)
  1388.       INTEGER*2 MM_ANISOTROPIC
  1389.       PARAMETER (MM_ANISOTROPIC=8)
  1390.  
  1391. C
  1392. C Coordinate Modes
  1393. C
  1394.       INTEGER*2 ABSOLUTE
  1395.       PARAMETER (ABSOLUTE=1)
  1396.       INTEGER*2 RELATIVE
  1397.       PARAMETER (RELATIVE=2)
  1398.  
  1399. C
  1400. C Stock Logical Objects
  1401. C
  1402.       INTEGER*2 WHITE_BRUSH
  1403.       PARAMETER (WHITE_BRUSH=0)
  1404.       INTEGER*2 LTGRAY_BRUSH
  1405.       PARAMETER (LTGRAY_BRUSH=1)
  1406.       INTEGER*2 GRAY_BRUSH
  1407.       PARAMETER (GRAY_BRUSH=2)
  1408.       INTEGER*2 DKGRAY_BRUSH
  1409.       PARAMETER (DKGRAY_BRUSH=3)
  1410.       INTEGER*2 BLACK_BRUSH
  1411.       PARAMETER (BLACK_BRUSH=4)
  1412.       INTEGER*2 NULL_BRUSH
  1413.       PARAMETER (NULL_BRUSH=5)
  1414.       INTEGER*2 HOLLOW_BRUSH
  1415.       PARAMETER (HOLLOW_BRUSH=NULL_BRUSH)
  1416.       INTEGER*2 WHITE_PEN
  1417.       PARAMETER (WHITE_PEN=6)
  1418.       INTEGER*2 BLACK_PEN
  1419.       PARAMETER (BLACK_PEN=7)
  1420.       INTEGER*2 NULL_PEN
  1421.       PARAMETER (NULL_PEN=8)
  1422.       INTEGER*2 OEM_FIXED_FONT
  1423.       PARAMETER (OEM_FIXED_FONT=10)
  1424.       INTEGER*2 ANSI_FIXED_FONT
  1425.       PARAMETER (ANSI_FIXED_FONT=11)
  1426.       INTEGER*2 ANSI_VAR_FONT
  1427.       PARAMETER (ANSI_VAR_FONT=12)
  1428.       INTEGER*2 SYSTEM_FONT
  1429.       PARAMETER (SYSTEM_FONT=13)
  1430.       INTEGER*2 DEVICE_DEFAULT_FONT
  1431.       PARAMETER (DEVICE_DEFAULT_FONT=14)
  1432.       INTEGER*2 DEFAULT_PALETTE
  1433.       PARAMETER (DEFAULT_PALETTE=15)
  1434.       INTEGER*2 SYSTEM_FIXED_FONT
  1435.       PARAMETER (SYSTEM_FIXED_FONT=16)
  1436.  
  1437. C
  1438. C Brush Styles
  1439. C
  1440.       INTEGER*2 BS_SOLID
  1441.       PARAMETER (BS_SOLID=0)
  1442.       INTEGER*2 BS_NULL
  1443.       PARAMETER (BS_NULL=1)
  1444.       INTEGER*2 BS_HOLLOW
  1445.       PARAMETER (BS_HOLLOW=BS_NULL)
  1446.       INTEGER*2 BS_HATCHED
  1447.       PARAMETER (BS_HATCHED=2)
  1448.       INTEGER*2 BS_PATTERN
  1449.       PARAMETER (BS_PATTERN=3)
  1450.       INTEGER*2 BS_INDEXED
  1451.       PARAMETER (BS_INDEXED=4)
  1452.       INTEGER*2 BS_DIBPATTERN
  1453.       PARAMETER (BS_DIBPATTERN=5)
  1454.  
  1455. C
  1456. C Hatch Styles
  1457. C
  1458.       INTEGER*2 HS_HORIZONTAL
  1459.       PARAMETER (HS_HORIZONTAL=0)   ! -----
  1460.       INTEGER*2 HS_VERTICAL
  1461.       PARAMETER (HS_VERTICAL=1)     ! |||||
  1462.       INTEGER*2 HS_FDIAGONAL
  1463.       PARAMETER (HS_FDIAGONAL=2)    ! \\\\\
  1464.       INTEGER*2 HS_BDIAGONAL
  1465.       PARAMETER (HS_BDIAGONAL=3)    ! /////
  1466.       INTEGER*2 HS_CROSS
  1467.       PARAMETER (HS_CROSS=4)        ! +++++
  1468.       INTEGER*2 HS_DIAGCROSS
  1469.       PARAMETER (HS_DIAGCROSS=5)    ! xxxxx
  1470.  
  1471. C
  1472. C Pen Styles
  1473. C
  1474.       INTEGER*2 PS_SOLID
  1475.       PARAMETER (PS_SOLID=0)
  1476.       INTEGER*2 PS_DASH
  1477.       PARAMETER (PS_DASH=1)         ! -------
  1478.       INTEGER*2 PS_DOT
  1479.       PARAMETER (PS_DOT=2)          ! .......
  1480.       INTEGER*2 PS_DASHDOT
  1481.       PARAMETER (PS_DASHDOT=3)      ! _._._._
  1482.       INTEGER*2 PS_DASHDOTDOT
  1483.       PARAMETER (PS_DASHDOTDOT=4)   ! _.._.._
  1484.       INTEGER*2 PS_NULL
  1485.       PARAMETER (PS_NULL=5)
  1486.       INTEGER*2 PS_INSIDEFRAME
  1487.       PARAMETER (PS_INSIDEFRAME=6)
  1488.  
  1489. C
  1490. C Device Parameters for GetDeviceCaps()
  1491. C
  1492.       INTEGER*2 DRIVERVERSION
  1493.       PARAMETER (DRIVERVERSION=0)    ! Device driver version
  1494.       INTEGER*2 TECHNOLOGY
  1495.       PARAMETER (TECHNOLOGY=2)       ! Device classification
  1496.       INTEGER*2 HORZSIZE
  1497.       PARAMETER (HORZSIZE=4)         ! Horizontal size in millimeters
  1498.       INTEGER*2 VERTSIZE
  1499.       PARAMETER (VERTSIZE=6)         ! Vertical size in millimeters
  1500.       INTEGER*2 HORZRES
  1501.       PARAMETER (HORZRES=8)          ! Horizontal width in pixels
  1502.       INTEGER*2 VERTRES
  1503.       PARAMETER (VERTRES=10)         ! Vertical width in pixels
  1504.       INTEGER*2 BITSPIXEL
  1505.       PARAMETER (BITSPIXEL=12)       ! Number of bits per pixel
  1506.       INTEGER*2 PLANES
  1507.       PARAMETER (PLANES=14)          ! Number of planes
  1508.       INTEGER*2 NUMBRUSHES
  1509.       PARAMETER (NUMBRUSHES=16)      ! Number of brushes the device has
  1510.       INTEGER*2 NUMPENS
  1511.       PARAMETER (NUMPENS=18)         ! Number of pens the device has
  1512.       INTEGER*2 NUMMARKERS
  1513.       PARAMETER (NUMMARKERS=20)      ! Number of markers the device has
  1514.       INTEGER*2 NUMFONTS
  1515.       PARAMETER (NUMFONTS=22)        ! Number of fonts the device has
  1516.       INTEGER*2 NUMCOLORS
  1517.       PARAMETER (NUMCOLORS=24)       ! Number of colors the device supports
  1518.       INTEGER*2 PDEVICESIZE
  1519.       PARAMETER (PDEVICESIZE=26)     ! Size required for device descriptor
  1520.       INTEGER*2 CURVECAPS
  1521.       PARAMETER (CURVECAPS=28)       ! Curve capabilities
  1522.       INTEGER*2 LINECAPS
  1523.       PARAMETER (LINECAPS=30)        ! Line capabilities
  1524.       INTEGER*2 POLYGONALCAPS
  1525.       PARAMETER (POLYGONALCAPS=32)   ! Polygonal capabilities
  1526.       INTEGER*2 TEXTCAPS
  1527.       PARAMETER (TEXTCAPS=34)        ! Text capabilities
  1528.       INTEGER*2 CLIPCAPS
  1529.       PARAMETER (CLIPCAPS=36)        ! Clipping capabilities
  1530.       INTEGER*2 RASTERCAPS
  1531.       PARAMETER (RASTERCAPS=38)      ! Bitblt capabilities
  1532.       INTEGER*2 ASPECTX
  1533.       PARAMETER (ASPECTX=40)         ! Length of the X leg
  1534.       INTEGER*2 ASPECTY
  1535.       PARAMETER (ASPECTY=42)         ! Length of the Y leg
  1536.       INTEGER*2 ASPECTXY
  1537.       PARAMETER (ASPECTXY=44)        ! Length of the hypotenuse
  1538.  
  1539.       INTEGER*2 LOGPIXELSX
  1540.       PARAMETER (LOGPIXELSX=88)      ! Logical pixels/inch in X
  1541.       INTEGER*2 LOGPIXELSY
  1542.       PARAMETER (LOGPIXELSY=90)      ! Logical pixels/inch in Y
  1543.  
  1544.       INTEGER*2 SIZEPALETTE
  1545.       PARAMETER (SIZEPALETTE=104)    ! Number of entries in physical palette
  1546.       INTEGER*2 NUMRESERVED
  1547.       PARAMETER (NUMRESERVED=106)    ! Number of reserved entries in palette
  1548.       INTEGER*2 COLORRES
  1549.       PARAMETER (COLORRES=108)       ! Actual color resolution
  1550.  
  1551. $IF DEFINED(GDICAPMASKS)
  1552.  
  1553. C
  1554. C Device Capability Masks:
  1555. C
  1556. C Device Technologies
  1557. C
  1558.       INTEGER*2 DT_PLOTTER
  1559.       PARAMETER (DT_PLOTTER=        0)  ! Vector plotter
  1560.       INTEGER*2 DT_RASDISPLAY
  1561.       PARAMETER (DT_RASDISPLAY=     1)  ! Raster display
  1562.       INTEGER*2 DT_RASPRINTER
  1563.       PARAMETER (DT_RASPRINTER=     2)  ! Raster printer
  1564.       INTEGER*2 DT_RASCAMERA
  1565.       PARAMETER (DT_RASCAMERA=      3)  ! Raster camera
  1566.       INTEGER*2 DT_CHARSTREAM
  1567.       PARAMETER (DT_CHARSTREAM=     4)  ! Character-stream, PLP
  1568.       INTEGER*2 DT_METAFILE
  1569.       PARAMETER (DT_METAFILE=       5)  ! Metafile, VDM
  1570.       INTEGER*2 DT_DISPFILE
  1571.       PARAMETER (DT_DISPFILE=       6)  ! Display-file
  1572.  
  1573. C
  1574. C Curve Capabilities
  1575. C
  1576.       INTEGER*2 CC_NONE
  1577.       PARAMETER (CC_NONE=           0)   ! Curves not supported
  1578.       INTEGER*2 CC_CIRCLES
  1579.       PARAMETER (CC_CIRCLES=        1)   ! Can do circles
  1580.       INTEGER*2 CC_PIE
  1581.       PARAMETER (CC_PIE=            2)   ! Can do pie wedges
  1582.       INTEGER*2 CC_CHORD
  1583.       PARAMETER (CC_CHORD=          4)   ! Can do chord arcs
  1584.       INTEGER*2 CC_ELLIPSES
  1585.       PARAMETER (CC_ELLIPSES=       8)   ! Can do ellipese
  1586.       INTEGER*2 CC_WIDE
  1587.       PARAMETER (CC_WIDE=           16)  ! Can do wide lines
  1588.       INTEGER*2 CC_STYLED
  1589.       PARAMETER (CC_STYLED=         32)  ! Can do styled lines
  1590.       INTEGER*2 CC_WIDESTYLED
  1591.       PARAMETER (CC_WIDESTYLED=     64)  ! Can do wide styled lines
  1592.       INTEGER*2 CC_INTERIORS
  1593.       PARAMETER (CC_INTERIORS=      128) ! Can do interiors
  1594.  
  1595. C
  1596. C Line Capabilities
  1597. C
  1598.       INTEGER*2 LC_NONE
  1599.       PARAMETER (LC_NONE=           0)   ! Lines not supported
  1600.       INTEGER*2 LC_POLYLINE
  1601.       PARAMETER (LC_POLYLINE=       2)   ! Can do polylines
  1602.       INTEGER*2 LC_MARKER
  1603.       PARAMETER (LC_MARKER=         4)   ! Can do markers
  1604.       INTEGER*2 LC_POLYMARKER
  1605.       PARAMETER (LC_POLYMARKER=     8)   ! Can do polymarkers
  1606.       INTEGER*2 LC_WIDE
  1607.       PARAMETER (LC_WIDE=           16)  ! Can do wide lines
  1608.       INTEGER*2 LC_STYLED
  1609.       PARAMETER (LC_STYLED=         32)  ! Can do styled lines
  1610.       INTEGER*2 LC_WIDESTYLED
  1611.       PARAMETER (LC_WIDESTYLED=     64)  ! Can do wide styled lines
  1612.       INTEGER*2 LC_INTERIORS
  1613.       PARAMETER (LC_INTERIORS=      128) ! Can do interiors
  1614.  
  1615. C
  1616. C Polygonal Capabilities
  1617. C
  1618.       INTEGER*2 PC_NONE
  1619.       PARAMETER (PC_NONE=           0)   ! Polygonals not supported
  1620.       INTEGER*2 PC_POLYGON
  1621.       PARAMETER (PC_POLYGON=        1)   ! Can do polygons
  1622.       INTEGER*2 PC_RECTANGLE
  1623.       PARAMETER (PC_RECTANGLE=      2)   ! Can do rectangles
  1624.       INTEGER*2 PC_WINDPOLYGON
  1625.       PARAMETER (PC_WINDPOLYGON=    4)   ! Can do winding polygons
  1626.       INTEGER*2 PC_TRAPEZOID
  1627.       PARAMETER (PC_TRAPEZOID=      4)   ! Can do trapezoids
  1628.       INTEGER*2 PC_SCANLINE
  1629.       PARAMETER (PC_SCANLINE=       8)   ! Can do scanlines
  1630.       INTEGER*2 PC_WIDE
  1631.       PARAMETER (PC_WIDE=           16)  ! Can do wide borders
  1632.       INTEGER*2 PC_STYLED
  1633.       PARAMETER (PC_STYLED=         32)  ! Can do styled borders
  1634.       INTEGER*2 PC_WIDESTYLED
  1635.       PARAMETER (PC_WIDESTYLED=     64)  ! Can do wide styled borders
  1636.       INTEGER*2 PC_INTERIORS
  1637.       PARAMETER (PC_INTERIORS=      128) ! Can do interiors
  1638.  
  1639. C
  1640. C Polygonal Capabilities
  1641. C
  1642.       INTEGER*2 CP_NONE
  1643.       PARAMETER (CP_NONE=           0)   ! No clipping of output
  1644.       INTEGER*2 CP_RECTANGLE
  1645.       PARAMETER (CP_RECTANGLE=      1)   ! Output clipped to rects
  1646.  
  1647. C
  1648. C Text Capabilities
  1649. C
  1650.       INTEGER*2 TC_OP_CHARACTER
  1651.       PARAMETER (TC_OP_CHARACTER=   #0001)  ! Can do OutputPrecision    CHARACTER
  1652.       INTEGER*2 TC_OP_STROKE
  1653.       PARAMETER (TC_OP_STROKE=      #0002)  ! Can do OutputPrecision    STROKE
  1654.       INTEGER*2 TC_CP_STROKE
  1655.       PARAMETER (TC_CP_STROKE=      #0004)  ! Can do ClipPrecision      STROKE
  1656.       INTEGER*2 TC_CR_90
  1657.       PARAMETER (TC_CR_90=          #0008)  ! Can do CharRotAbility     90
  1658.       INTEGER*2 TC_CR_ANY
  1659.       PARAMETER (TC_CR_ANY=         #0010)  ! Can do CharRotAbility     ANY
  1660.       INTEGER*2 TC_SF_X_YINDEP
  1661.       PARAMETER (TC_SF_X_YINDEP=    #0020)  ! Can do ScaleFreedom       X_YINDEPENDENT
  1662.       INTEGER*2 TC_SA_DOUBLE
  1663.       PARAMETER (TC_SA_DOUBLE=      #0040)  ! Can do ScaleAbility       DOUBLE
  1664.       INTEGER*2 TC_SA_INTEGER
  1665.       PARAMETER (TC_SA_INTEGER=     #0080)  ! Can do ScaleAbility       INTEGER
  1666.       INTEGER*2 TC_SA_CONTIN
  1667.       PARAMETER (TC_SA_CONTIN=      #0100)  ! Can do ScaleAbility       CONTINUOUS
  1668.       INTEGER*2 TC_EA_DOUBLE
  1669.       PARAMETER (TC_EA_DOUBLE=      #0200)  ! Can do EmboldenAbility    DOUBLE
  1670.       INTEGER*2 TC_IA_ABLE
  1671.       PARAMETER (TC_IA_ABLE=        #0400)  ! Can do ItalisizeAbility   ABLE
  1672.       INTEGER*2 TC_UA_ABLE
  1673.       PARAMETER (TC_UA_ABLE=        #0800)  ! Can do UnderlineAbility   ABLE
  1674.       INTEGER*2 TC_SO_ABLE
  1675.       PARAMETER (TC_SO_ABLE=        #1000)  ! Can do StrikeOutAbility   ABLE
  1676.       INTEGER*2 TC_RA_ABLE
  1677.       PARAMETER (TC_RA_ABLE=        #2000)  ! Can do RasterFontAble     ABLE
  1678.       INTEGER*2 TC_VA_ABLE
  1679.       PARAMETER (TC_VA_ABLE=        #4000)  ! Can do VectorFontAble     ABLE
  1680.       INTEGER*2 TC_RESERVED
  1681.       PARAMETER (TC_RESERVED=       #8000)
  1682.  
  1683. $ENDIF ! NOGDICAPMASKS
  1684.  
  1685. C
  1686. C Raster Capabilities
  1687. C
  1688.       INTEGER*2 RC_BITBLT
  1689.       PARAMETER (RC_BITBLT=         1)      ! Can do standard BLT.
  1690.       INTEGER*2 RC_BANDING
  1691.       PARAMETER (RC_BANDING=        2)      ! Device requires banding support
  1692.       INTEGER*2 RC_SCALING
  1693.       PARAMETER (RC_SCALING=        4)      ! Device requires scaling support
  1694.       INTEGER*2 RC_BITMAP64
  1695.       PARAMETER (RC_BITMAP64=       8)      ! Device can support >64K bitmap
  1696.       INTEGER*2 RC_GDI20_OUTPUT
  1697.       PARAMETER (RC_GDI20_OUTPUT=   #0010)      ! has 2.0 output calls
  1698.       INTEGER*2 RC_DI_BITMAP
  1699.       PARAMETER (RC_DI_BITMAP=      #0080)      ! supports DIB to memory
  1700.       INTEGER*2 RC_PALETTE
  1701.       PARAMETER (RC_PALETTE=        #0100)      ! supports a palette
  1702.       INTEGER*2 RC_DIBTODEV
  1703.       PARAMETER (RC_DIBTODEV=       #0200)      ! supports DIBitsToDevice
  1704.       INTEGER*2 RC_BIGFONT
  1705.       PARAMETER (RC_BIGFONT=        #0400)      ! supports >64K fonts
  1706.       INTEGER*2 RC_STRETCHBLT
  1707.       PARAMETER (RC_STRETCHBLT=     #0800)      ! supports StretchBlt
  1708.       INTEGER*2 RC_FLOODFILL
  1709.       PARAMETER (RC_FLOODFILL=      #1000)      ! supports FloodFill
  1710.       INTEGER*2 RC_STRETCHDIB
  1711.       PARAMETER (RC_STRETCHDIB=     #2000)      ! supports StretchDIBits
  1712.  
  1713. C
  1714. C palette entry flags
  1715. C
  1716.  
  1717.       INTEGER*2 PC_RESERVED
  1718.       PARAMETER (PC_RESERVED=   #01)    ! palette index used for animation
  1719.       INTEGER*2 PC_EXPLICIT
  1720.       PARAMETER (PC_EXPLICIT=   #02)    ! palette index is explicit to device
  1721.       INTEGER*2 PC_NOCOLLAPSE
  1722.       PARAMETER (PC_NOCOLLAPSE= #04)    ! do not match color to system palette
  1723.  
  1724. C
  1725. C DIB color table identifiers
  1726. C
  1727.  
  1728.       INTEGER*2 DIB_RGB_COLORS
  1729.       PARAMETER (DIB_RGB_COLORS=0)      ! color table in RGBTriples
  1730.       INTEGER*2 DIB_PAL_COLORS
  1731.       PARAMETER (DIB_PAL_COLORS=1)      ! color table in palette indices
  1732.  
  1733. C
  1734. C constants for Get/SetSystemPaletteUse()
  1735. C
  1736.  
  1737.       INTEGER*2 SYSPAL_STATIC
  1738.       PARAMETER (SYSPAL_STATIC=1)
  1739.       INTEGER*2 SYSPAL_NOSTATIC
  1740.       PARAMETER (SYSPAL_NOSTATIC=2)
  1741.  
  1742. C
  1743. C Constants for CreateDIBitmap
  1744. C
  1745.       INTEGER*4 CBM_INIT
  1746.       PARAMETER (CBM_INIT=#04)  ! initialize bitmap
  1747.  
  1748. $IF DEFINED(DRAWTEXT)
  1749.  
  1750. C
  1751. C DrawText() Format Flags
  1752. C
  1753.       INTEGER*2 DT_TOP
  1754.       PARAMETER (DT_TOP=            #0000)
  1755.       INTEGER*2 DT_LEFT
  1756.       PARAMETER (DT_LEFT=           #0000)
  1757.       INTEGER*2 DT_CENTER
  1758.       PARAMETER (DT_CENTER=         #0001)
  1759.       INTEGER*2 DT_RIGHT
  1760.       PARAMETER (DT_RIGHT=          #0002)
  1761.       INTEGER*2 DT_VCENTER
  1762.       PARAMETER (DT_VCENTER=        #0004)
  1763.       INTEGER*2 DT_BOTTOM
  1764.       PARAMETER (DT_BOTTOM=         #0008)
  1765.       INTEGER*2 DT_WORDBREAK
  1766.       PARAMETER (DT_WORDBREAK=      #0010)
  1767.       INTEGER*2 DT_SINGLELINE
  1768.       PARAMETER (DT_SINGLELINE=     #0020)
  1769.       INTEGER*2 DT_EXPANDTABS
  1770.       PARAMETER (DT_EXPANDTABS=     #0040)
  1771.       INTEGER*2 DT_TABSTOP
  1772.       PARAMETER (DT_TABSTOP=        #0080)
  1773.       INTEGER*2 DT_NOCLIP
  1774.       PARAMETER (DT_NOCLIP=         #0100)
  1775.       INTEGER*2 DT_EXTERNALLEADING
  1776.       PARAMETER (DT_EXTERNALLEADING=#0200)
  1777.       INTEGER*2 DT_CALCRECT
  1778.       PARAMETER (DT_CALCRECT=       #0400)
  1779.       INTEGER*2 DT_NOPREFIX
  1780.       PARAMETER (DT_NOPREFIX=       #0800)
  1781.       INTEGER*2 DT_INTERNAL
  1782.       PARAMETER (DT_INTERNAL=       #1000)
  1783.  
  1784.       INTEGER*2 DrawText [EXTERN]
  1785.       INTEGER*2 DrawIcon [EXTERN]
  1786.  
  1787. $ENDIF ! NODRAWTEXT
  1788.  
  1789. C
  1790. C ExtFloodFill style flags
  1791. C
  1792.       INTEGER*2 FLOODFILLBORDER
  1793.       PARAMETER (FLOODFILLBORDER=0)
  1794.       INTEGER*2 FLOODFILLSURFACE
  1795.       PARAMETER (FLOODFILLSURFACE=1)
  1796.  
  1797.       INTEGER*2 GetWindowDC [EXTERN]
  1798.       INTEGER*2 GetDC [EXTERN]
  1799.       INTEGER*2 ReleaseDC [EXTERN]
  1800.       INTEGER*2 CreateDC [EXTERN]
  1801.       INTEGER*2 CreateIC [EXTERN]
  1802.       INTEGER*2 CreateCompatibleDC [EXTERN]
  1803.       INTEGER*2 DeleteDC [EXTERN]
  1804.       INTEGER*2 SaveDC [EXTERN]
  1805.       INTEGER*2 RestoreDC [EXTERN]
  1806.       INTEGER*4 MoveTo [EXTERN]
  1807.       INTEGER*4 GetCurrentPosition [EXTERN]
  1808.       INTEGER*2 LineTo [EXTERN]
  1809.       INTEGER*4 GetDCOrg [EXTERN]
  1810.  
  1811.       INTEGER*2 ExtTextOut [EXTERN]
  1812.       INTEGER*2 Polyline [EXTERN]
  1813.       INTEGER*2 Polygon [EXTERN]
  1814.       INTEGER*2 PolyPolygon [EXTERN]
  1815.  
  1816.       INTEGER*2 Rectangle [EXTERN]
  1817.       INTEGER*2 RoundRect [EXTERN]
  1818.       INTEGER*2 Ellipse [EXTERN]
  1819.       INTEGER*2 Arc [EXTERN]
  1820.       INTEGER*2 Chord [EXTERN]
  1821.       INTEGER*2 Pie [EXTERN]
  1822.       INTEGER*2 PatBlt [EXTERN]
  1823.       INTEGER*2 BitBlt [EXTERN]
  1824.       INTEGER*2 StretchBlt [EXTERN]
  1825.       INTEGER*2 TextOut [EXTERN]
  1826.       INTEGER*4 TabbedTextOut [EXTERN]
  1827.       INTEGER*2 GetCharWidth [EXTERN]
  1828.       INTEGER*4 SetPixel [EXTERN]
  1829.       INTEGER*4 GetPixel [EXTERN]
  1830.       INTEGER*2 FloodFill [EXTERN]
  1831.       INTEGER*2 ExtFloodFill [EXTERN]
  1832.  
  1833.       INTEGER*2 GetStockObject [EXTERN]
  1834.  
  1835.       INTEGER*2 CreatePen [EXTERN]
  1836.       INTEGER*2 CreatePenIndirect [EXTERN]
  1837.  
  1838.       INTEGER*2 CreateSolidBrush [EXTERN]
  1839.       INTEGER*2 CreateHatchBrush [EXTERN]
  1840.       INTEGER*4 SetBrushOrg [EXTERN]
  1841.       INTEGER*4 GetBrushOrg [EXTERN]
  1842.       INTEGER*2 CreatePatternBrush [EXTERN]
  1843.       INTEGER*2 CreateBrushIndirect [EXTERN]
  1844.  
  1845.       INTEGER*2 CreateBitmap [EXTERN]
  1846.       INTEGER*2 CreateBitmapIndirect [EXTERN]
  1847.       INTEGER*2 CreateCompatibleBitmap [EXTERN]
  1848.       INTEGER*2 CreateDiscardableBitmap [EXTERN]
  1849.  
  1850.       INTEGER*4 SetBitmapBits [EXTERN]
  1851.       INTEGER*4 GetBitmapBits [EXTERN]
  1852.       INTEGER*4 SetBitmapDimension [EXTERN]
  1853.       INTEGER*4 GetBitmapDimension [EXTERN]
  1854.  
  1855.       INTEGER*2 CreateFont [EXTERN]
  1856.       INTEGER*2 CreateFontIndirect [EXTERN]
  1857.  
  1858.       INTEGER*2 SelectClipRgn [EXTERN]
  1859.       INTEGER*2 CreateRectRgn [EXTERN]
  1860.       INTEGER*2 CreateRectRgnIndirect [EXTERN]
  1861.       INTEGER*2 CreateEllipticRgnIndirect [EXTERN]
  1862.       INTEGER*2 CreateEllipticRgn [EXTERN]
  1863.       INTEGER*2 CreatePolygonRgn [EXTERN]
  1864.       INTEGER*2 CreatePolyPolygonRgn [EXTERN]
  1865.       INTEGER*2 CreateRoundRectRgn [EXTERN]
  1866.  
  1867.       INTEGER*2 GetObject [EXTERN]
  1868.       INTEGER*2 DeleteObject [EXTERN]
  1869.       INTEGER*2 SelectObject [EXTERN]
  1870.       INTEGER*2 UnrealizeObject [EXTERN]
  1871.  
  1872.       INTEGER*2 SetBkColor [EXTERN]
  1873.       INTEGER*4 GetBkColor [EXTERN]
  1874.       INTEGER*2 SetBkMode [EXTERN]
  1875.       INTEGER*2 GetBkMode [EXTERN]
  1876.       INTEGER*4 SetTextColor [EXTERN]
  1877.       INTEGER*4 GetTextColor [EXTERN]
  1878.       INTEGER*2 SetTextAlign [EXTERN]
  1879.       INTEGER*2 GetTextAlign [EXTERN]
  1880.       INTEGER*4 SetMapperFlags [EXTERN]
  1881.       INTEGER*4 GetAspectRatioFilter [EXTERN]
  1882.       INTEGER*4 GetNearestColor [EXTERN]
  1883.       INTEGER*2 SetROP2 [EXTERN]
  1884.       INTEGER*2 GetROP2 [EXTERN]
  1885.       INTEGER*2 SetStretchBltMode [EXTERN]
  1886.       INTEGER*2 GetStretchBltMode [EXTERN]
  1887.       INTEGER*2 SetPolyFillMode [EXTERN]
  1888.       INTEGER*2 GetPolyFillMode [EXTERN]
  1889.       INTEGER*2 SetMapMode [EXTERN]
  1890.       INTEGER*2 GetMapMode [EXTERN]
  1891.       INTEGER*4 SetWindowOrg [EXTERN]
  1892.       INTEGER*4 GetWindowOrg [EXTERN]
  1893.       INTEGER*4 SetWindowExt [EXTERN]
  1894.       INTEGER*4 GetWindowExt [EXTERN]
  1895.       INTEGER*4 SetViewportOrg [EXTERN]
  1896.       INTEGER*4 GetViewportOrg [EXTERN]
  1897.       INTEGER*4 SetViewportExt [EXTERN]
  1898.       INTEGER*4 GetViewportExt [EXTERN]
  1899.       INTEGER*4 OffsetViewportOrg [EXTERN]
  1900.       INTEGER*4 ScaleViewportExt [EXTERN]
  1901.       INTEGER*4 OffsetWindowOrg [EXTERN]
  1902.       INTEGER*4 ScaleWindowExt [EXTERN]
  1903.  
  1904.       INTEGER*2 GetClipBox [EXTERN]
  1905.       INTEGER*2 IntersectClipRect [EXTERN]
  1906.       INTEGER*2 OffsetClipRgn [EXTERN]
  1907.       INTEGER*2 ExcludeClipRect [EXTERN]
  1908.       INTEGER*2 PtVisible [EXTERN]
  1909.       INTEGER*2 CombineRgn [EXTERN]
  1910.       INTEGER*2 EqualRgn [EXTERN]
  1911.       INTEGER*2 OffsetRgn [EXTERN]
  1912.       INTEGER*2 GetRgnBox [EXTERN]
  1913.  
  1914.       INTEGER*2 SetTextJustification [EXTERN]
  1915.       INTEGER*4 GetTextExtent [EXTERN]
  1916.       INTEGER*4 GetTabbedTextExtent [EXTERN]
  1917.       INTEGER*2 SetTextCharacterExtra [EXTERN]
  1918.       INTEGER*2 GetTextCharacterExtra [EXTERN]
  1919.  
  1920.       INTEGER*2 GetMetaFile [EXTERN]
  1921.       INTEGER*2 DeleteMetaFile [EXTERN]
  1922.       INTEGER*2 CopyMetaFile [EXTERN]
  1923.  
  1924. $IF DEFINED(METAFILE)
  1925.       INTEGER*2 EnumMetaFile [EXTERN]
  1926. $ENDIF
  1927.  
  1928.       INTEGER*2 PlayMetaFile [EXTERN]
  1929.       INTEGER*2 Escape [EXTERN]
  1930.       INTEGER*2 EnumFonts [EXTERN]
  1931.       INTEGER*2 EnumObjects [EXTERN]
  1932.       INTEGER*2 GetTextFace [EXTERN]
  1933.  
  1934. $IF DEFINED(TEXTMETRIC)
  1935.       INTEGER*2 GetTextMetrics [EXTERN]
  1936. $ENDIF
  1937.  
  1938.       INTEGER*2 GetDeviceCaps [EXTERN]
  1939.  
  1940.       INTEGER*2 SetEnvironment [EXTERN]
  1941.       INTEGER*2 GetEnvironment [EXTERN]
  1942.  
  1943.       INTEGER*2 DPtoLP [EXTERN]
  1944.       INTEGER*2 LPtoDP [EXTERN]
  1945.  
  1946.       INTEGER*2 CreateMetaFile [EXTERN]
  1947.       INTEGER*2 CloseMetaFile [EXTERN]
  1948.       INTEGER*2 GetMetaFileBits [EXTERN]
  1949.       INTEGER*2 SetMetaFileBits [EXTERN]
  1950.  
  1951.       INTEGER*2 SetDIBits [EXTERN], SetDIBits_A [EXTERN]
  1952.       INTEGER*2 GetDIBits [EXTERN], GetDIBits_A [EXTERN]
  1953.  
  1954.       INTEGER*2 SetDIBitsToDevice [EXTERN]
  1955.       INTEGER*2 CreateDIBitmap [EXTERN]
  1956.       INTEGER*2 CreateDIBPatternBrush [EXTERN]
  1957.       INTEGER*2 StretchDIBits [EXTERN]
  1958.  
  1959.       INTEGER*2 CreatePalette  [EXTERN]
  1960.       INTEGER*2 SelectPalette  [EXTERN]
  1961.       INTEGER*2 RealizePalette  [EXTERN]
  1962.       INTEGER*2 UpdateColors  [EXTERN]
  1963.       INTEGER*2 SetPaletteEntries [EXTERN]
  1964.       INTEGER*2 GetPaletteEntries [EXTERN]
  1965.       INTEGER*2 GetNearestPaletteIndex [EXTERN]
  1966.       INTEGER*2 ResizePalette [EXTERN]
  1967.  
  1968.       INTEGER*2 GetSystemPaletteEntries [EXTERN]
  1969.       INTEGER*2 GetSystemPaletteUse [EXTERN]
  1970.       INTEGER*2 SetSystemPaletteUse [EXTERN]
  1971.  
  1972. $ENDIF ! NOGDI
  1973.  
  1974. C
  1975. C USER Section
  1976. C
  1977.  
  1978. $IF DEFINED(USER)
  1979.  
  1980. !!int FAR PASCAL wvsprintf(LPSTR,LPSTR,LPSTR);
  1981. !!int FAR cdecl wsprintf(LPSTR,LPSTR,...);
  1982.  
  1983. $IF DEFINED(SCROLL)
  1984.  
  1985. C
  1986. C Scroll Bar Constants
  1987. C
  1988.       INTEGER*2 SB_HORZ
  1989.       PARAMETER (SB_HORZ=    0)
  1990.       INTEGER*2 SB_VERT
  1991.       PARAMETER (SB_VERT=    1)
  1992.       INTEGER*2 SB_CTL
  1993.       PARAMETER (SB_CTL=     2)
  1994.       INTEGER*2 SB_BOTH
  1995.       PARAMETER (SB_BOTH=    3)
  1996.  
  1997. C
  1998. C Scroll Bar Commands
  1999. C
  2000.       INTEGER*2 SB_LINEUP
  2001.       PARAMETER (SB_LINEUP=         0)
  2002.       INTEGER*2 SB_LINEDOWN
  2003.       PARAMETER (SB_LINEDOWN=       1)
  2004.       INTEGER*2 SB_PAGEUP
  2005.       PARAMETER (SB_PAGEUP=         2)
  2006.       INTEGER*2 SB_PAGEDOWN
  2007.       PARAMETER (SB_PAGEDOWN=       3)
  2008.       INTEGER*2 SB_THUMBPOSITION
  2009.       PARAMETER (SB_THUMBPOSITION=  4)
  2010.       INTEGER*2 SB_THUMBTRACK
  2011.       PARAMETER (SB_THUMBTRACK=     5)
  2012.       INTEGER*2 SB_TOP
  2013.       PARAMETER (SB_TOP=            6)
  2014.       INTEGER*2 SB_BOTTOM
  2015.       PARAMETER (SB_BOTTOM=         7)
  2016.       INTEGER*2 SB_ENDSCROLL
  2017.       PARAMETER (SB_ENDSCROLL=      8)
  2018.  
  2019. $ENDIF ! NOSCROLL
  2020.  
  2021. $IF DEFINED(SHOWWINDOW)
  2022.  
  2023. C
  2024. C ShowWindow() Commands
  2025. C
  2026.       INTEGER*2 SW_HIDE
  2027.       PARAMETER (SW_HIDE=           0)
  2028.       INTEGER*2 SW_SHOWNORMAL
  2029.       PARAMETER (SW_SHOWNORMAL=     1)
  2030.       INTEGER*2 SW_NORMAL
  2031.       PARAMETER (SW_NORMAL=         1)
  2032.       INTEGER*2 SW_SHOWMINIMIZED
  2033.       PARAMETER (SW_SHOWMINIMIZED=  2)
  2034.       INTEGER*2 SW_SHOWMAXIMIZED
  2035.       PARAMETER (SW_SHOWMAXIMIZED=  3)
  2036.       INTEGER*2 SW_MAXIMIZE
  2037.       PARAMETER (SW_MAXIMIZE=       3)
  2038.       INTEGER*2 SW_SHOWNOACTIVATE
  2039.       PARAMETER (SW_SHOWNOACTIVATE= 4)
  2040.       INTEGER*2 SW_SHOW
  2041.       PARAMETER (SW_SHOW=           5)
  2042.       INTEGER*2 SW_MINIMIZE
  2043.       PARAMETER (SW_MINIMIZE=       6)
  2044.       INTEGER*2 SW_SHOWMINNOACTIVE
  2045.       PARAMETER (SW_SHOWMINNOACTIVE=7)
  2046.       INTEGER*2 SW_SHOWNA
  2047.       PARAMETER (SW_SHOWNA=         8)
  2048.       INTEGER*2 SW_RESTORE
  2049.       PARAMETER (SW_RESTORE=        9)
  2050.  
  2051. C
  2052. C Old ShowWindow() Commands
  2053. C
  2054.       INTEGER*2 HIDE_WINDOW
  2055.       PARAMETER (HIDE_WINDOW=        0)
  2056.       INTEGER*2 SHOW_OPENWINDOW
  2057.       PARAMETER (SHOW_OPENWINDOW=    1)
  2058.       INTEGER*2 SHOW_ICONWINDOW
  2059.       PARAMETER (SHOW_ICONWINDOW=    2)
  2060.       INTEGER*2 SHOW_FULLSCREEN
  2061.       PARAMETER (SHOW_FULLSCREEN=    3)
  2062.       INTEGER*2 SHOW_OPENNOACTIVATE
  2063.       PARAMETER (SHOW_OPENNOACTIVATE=4)
  2064.  
  2065. C
  2066. C Identifiers for the WM_SHOWWINDOW message
  2067. C
  2068.       INTEGER*2 SW_PARENTCLOSING
  2069.       PARAMETER (SW_PARENTCLOSING=   1)
  2070.       INTEGER*2 SW_OTHERZOOM
  2071.       PARAMETER (SW_OTHERZOOM=       2)
  2072.       INTEGER*2 SW_PARENTOPENING
  2073.       PARAMETER (SW_PARENTOPENING=   3)
  2074.       INTEGER*2 SW_OTHERUNZOOM
  2075.       PARAMETER (SW_OTHERUNZOOM=     4)
  2076.  
  2077. $ENDIF ! NOSHOWWINDOW
  2078.  
  2079. C
  2080. C Region Flags
  2081. C
  2082.       INTEGER*2 ERROR
  2083.       PARAMETER (ERROR=             0)
  2084.       INTEGER*2 NULLREGION
  2085.       PARAMETER (NULLREGION=        1)
  2086.       INTEGER*2 SIMPLEREGION
  2087.       PARAMETER (SIMPLEREGION=      2)
  2088.       INTEGER*2 COMPLEXREGION
  2089.       PARAMETER (COMPLEXREGION=     3)
  2090.  
  2091. C
  2092. C CombineRgn() Styles
  2093. C
  2094.       INTEGER*2 RGN_AND
  2095.       PARAMETER (RGN_AND=           1)
  2096.       INTEGER*2 RGN_OR
  2097.       PARAMETER (RGN_OR=            2)
  2098.       INTEGER*2 RGN_XOR
  2099.       PARAMETER (RGN_XOR=           3)
  2100.       INTEGER*2 RGN_DIFF
  2101.       PARAMETER (RGN_DIFF=          4)
  2102.       INTEGER*2 RGN_COPY
  2103.       PARAMETER (RGN_COPY=          5)
  2104.  
  2105. $IF DEFINED(VIRTUALKEYCODES)
  2106.  
  2107. C
  2108. C Virtual Keys, Standard Set
  2109. C
  2110.       BYTE VK_LBUTTON
  2111.       PARAMETER (VK_LBUTTON=        #01)
  2112.       BYTE VK_RBUTTON
  2113.       PARAMETER (VK_RBUTTON=        #02)
  2114.       BYTE VK_CANCEL
  2115.       PARAMETER (VK_CANCEL=         #03)
  2116.       BYTE VK_MBUTTON
  2117.       PARAMETER (VK_MBUTTON=        #04)   ! NOT contiguous with L & RBUTTON
  2118.       BYTE VK_BACK
  2119.       PARAMETER (VK_BACK=           #08)
  2120.       BYTE VK_TAB
  2121.       PARAMETER (VK_TAB=            #09)
  2122.       BYTE VK_CLEAR
  2123.       PARAMETER (VK_CLEAR=          #0C)
  2124.       BYTE VK_RETURN
  2125.       PARAMETER (VK_RETURN=         #0D)
  2126.       BYTE VK_SHIFT
  2127.       PARAMETER (VK_SHIFT=          #10)
  2128.       BYTE VK_CONTROL
  2129.       PARAMETER (VK_CONTROL=        #11)
  2130.       BYTE VK_MENU
  2131.       PARAMETER (VK_MENU=           #12)
  2132.       BYTE VK_PAUSE
  2133.       PARAMETER (VK_PAUSE=          #13)
  2134.       BYTE VK_CAPITAL
  2135.       PARAMETER (VK_CAPITAL=        #14)
  2136.       BYTE VK_ESCAPE
  2137.       PARAMETER (VK_ESCAPE=         #1B)
  2138.       BYTE VK_SPACE
  2139.       PARAMETER (VK_SPACE=          #20)
  2140.       BYTE VK_PRIOR
  2141.       PARAMETER (VK_PRIOR=          #21)
  2142.       BYTE VK_NEXT
  2143.       PARAMETER (VK_NEXT=           #22)
  2144.       BYTE VK_END
  2145.       PARAMETER (VK_END=            #23)
  2146.       BYTE VK_HOME
  2147.       PARAMETER (VK_HOME=           #24)
  2148.       BYTE VK_LEFT
  2149.       PARAMETER (VK_LEFT=           #25)
  2150.       BYTE VK_UP
  2151.       PARAMETER (VK_UP=             #26)
  2152.       BYTE VK_RIGHT
  2153.       PARAMETER (VK_RIGHT=          #27)
  2154.       BYTE VK_DOWN
  2155.       PARAMETER (VK_DOWN=           #28)
  2156.       BYTE VK_SELECT
  2157.       PARAMETER (VK_SELECT=         #29)
  2158.       BYTE VK_PRINT
  2159.       PARAMETER (VK_PRINT=          #2A)
  2160.       BYTE VK_EXECUTE
  2161.       PARAMETER (VK_EXECUTE=        #2B)
  2162.       BYTE VK_SNAPSHOT
  2163.       PARAMETER (VK_SNAPSHOT=       #2C)
  2164. C      BYTE VK_COPY
  2165. C      PARAMETER (VK_COPY=          #2C)  not used by keyboards
  2166.       BYTE VK_INSERT
  2167.       PARAMETER (VK_INSERT=         #2D)
  2168.       BYTE VK_DELETE
  2169.       PARAMETER (VK_DELETE=         #2E)
  2170.       BYTE VK_HELP
  2171.       PARAMETER (VK_HELP=           #2F)
  2172.  
  2173. C
  2174. C VK_A thru VK_Z are the same as their ASCII equivalents: 'A' thru 'Z'
  2175. C VK_0 thru VK_9 are the same as their ASCII equivalents: '0' thru '0'
  2176. C
  2177.       BYTE VK_NUMPAD0
  2178.       PARAMETER (VK_NUMPAD0=        #60)
  2179.       BYTE VK_NUMPAD1
  2180.       PARAMETER (VK_NUMPAD1=        #61)
  2181.       BYTE VK_NUMPAD2
  2182.       PARAMETER (VK_NUMPAD2=        #62)
  2183.       BYTE VK_NUMPAD3
  2184.       PARAMETER (VK_NUMPAD3=        #63)
  2185.       BYTE VK_NUMPAD4
  2186.       PARAMETER (VK_NUMPAD4=        #64)
  2187.       BYTE VK_NUMPAD5
  2188.       PARAMETER (VK_NUMPAD5=        #65)
  2189.       BYTE VK_NUMPAD6
  2190.       PARAMETER (VK_NUMPAD6=        #66)
  2191.       BYTE VK_NUMPAD7
  2192.       PARAMETER (VK_NUMPAD7=        #67)
  2193.       BYTE VK_NUMPAD8
  2194.       PARAMETER (VK_NUMPAD8=        #68)
  2195.       BYTE VK_NUMPAD9
  2196.       PARAMETER (VK_NUMPAD9=        #69)
  2197.       BYTE VK_MULTIPLY
  2198.       PARAMETER (VK_MULTIPLY=       #6A)
  2199.       BYTE VK_ADD
  2200.       PARAMETER (VK_ADD=            #6B)
  2201.       BYTE VK_SEPARATOR
  2202.       PARAMETER (VK_SEPARATOR=      #6C)
  2203.       BYTE VK_SUBTRACT
  2204.       PARAMETER (VK_SUBTRACT=       #6D)
  2205.       BYTE VK_DECIMAL
  2206.       PARAMETER (VK_DECIMAL=        #6E)
  2207.       BYTE VK_DIVIDE
  2208.       PARAMETER (VK_DIVIDE=         #6F)
  2209.       BYTE VK_F1
  2210.       PARAMETER (VK_F1=             #70)
  2211.       BYTE VK_F2
  2212.       PARAMETER (VK_F2=             #71)
  2213.       BYTE VK_F3
  2214.       PARAMETER (VK_F3=             #72)
  2215.       BYTE VK_F4
  2216.       PARAMETER (VK_F4=             #73)
  2217.       BYTE VK_F5
  2218.       PARAMETER (VK_F5=             #74)
  2219.       BYTE VK_F6
  2220.       PARAMETER (VK_F6=             #75)
  2221.       BYTE VK_F7
  2222.       PARAMETER (VK_F7=             #76)
  2223.       BYTE VK_F8
  2224.       PARAMETER (VK_F8=             #77)
  2225.       BYTE VK_F9
  2226.       PARAMETER (VK_F9=             #78)
  2227.       BYTE VK_F10
  2228.       PARAMETER (VK_F10=            #79)
  2229.       BYTE VK_F11
  2230.       PARAMETER (VK_F11=            #7A)
  2231.       BYTE VK_F12
  2232.       PARAMETER (VK_F12=            #7B)
  2233.       BYTE VK_F13
  2234.       PARAMETER (VK_F13=            #7C)
  2235.       BYTE VK_F14
  2236.       PARAMETER (VK_F14=            #7D)
  2237.       BYTE VK_F15
  2238.       PARAMETER (VK_F15=            #7E)
  2239.       BYTE VK_F16
  2240.       PARAMETER (VK_F16=            #7F)
  2241.  
  2242.       BYTE VK_NUMLOCK
  2243.       PARAMETER (VK_NUMLOCK=        #90)
  2244.  
  2245. $ENDIF ! NOVIRTUALKEYCODES
  2246.  
  2247. $IF DEFINED(WH)
  2248.  
  2249. C
  2250. C SetWindowsHook() codes
  2251. C
  2252.       INTEGER*2 WH_MSGFILTER
  2253.       PARAMETER (WH_MSGFILTER=     -1)
  2254.       INTEGER*2 WH_JOURNALRECORD
  2255.       PARAMETER (WH_JOURNALRECORD=  0)
  2256.       INTEGER*2 WH_JOURNALPLAYBACK
  2257.       PARAMETER (WH_JOURNALPLAYBACK=1)
  2258.       INTEGER*2 WH_KEYBOARD
  2259.       PARAMETER (WH_KEYBOARD=       2)
  2260.       INTEGER*2 WH_GETMESSAGE
  2261.       PARAMETER (WH_GETMESSAGE=     3)
  2262.       INTEGER*2 WH_CALLWNDPROC
  2263.       PARAMETER (WH_CALLWNDPROC=    4)
  2264.       INTEGER*2 WH_CBT
  2265.       PARAMETER (WH_CBT=            5)
  2266.       INTEGER*2 WH_SYSMSGFILTER
  2267.       PARAMETER (WH_SYSMSGFILTER=   6)
  2268.       INTEGER*2 WH_WINDOWMGR
  2269.       PARAMETER (WH_WINDOWMGR=      7)
  2270.  
  2271. C
  2272. C Hook Codes
  2273. C
  2274.       INTEGER*2 HC_LPLPFNNEXT
  2275.       PARAMETER (HC_LPLPFNNEXT=    -2)
  2276.       INTEGER*2 HC_LPFNNEXT
  2277.       PARAMETER (HC_LPFNNEXT=      -1)
  2278.       INTEGER*2 HC_ACTION
  2279.       PARAMETER (HC_ACTION=         0)
  2280.       INTEGER*2 HC_GETNEXT
  2281.       PARAMETER (HC_GETNEXT=        1)
  2282.       INTEGER*2 HC_SKIP
  2283.       PARAMETER (HC_SKIP=           2)
  2284.       INTEGER*2 HC_NOREM
  2285.       PARAMETER (HC_NOREM=          3)
  2286.       INTEGER*2 HC_NOREMOVE
  2287.       PARAMETER (HC_NOREMOVE=       3)
  2288.       INTEGER*2 HC_SYSMODALON
  2289.       PARAMETER (HC_SYSMODALON=     4)
  2290.       INTEGER*2 HC_SYSMODALOFF
  2291.       PARAMETER (HC_SYSMODALOFF=    5)
  2292.  
  2293. C
  2294. C CBT Hook Codes
  2295. C
  2296.       INTEGER*2 HCBT_MOVESIZE
  2297.       PARAMETER (HCBT_MOVESIZE=     0)
  2298.       INTEGER*2 HCBT_MINMAX
  2299.       PARAMETER (HCBT_MINMAX=       1)
  2300.       INTEGER*2 HCBT_QS
  2301.       PARAMETER (HCBT_QS=           2)
  2302.  
  2303. C
  2304. C WH_MSGFILTER Filter Proc Codes
  2305. C
  2306.       INTEGER*2 MSGF_DIALOGBOX
  2307.       PARAMETER (MSGF_DIALOGBOX=    0)
  2308.       INTEGER*2 MSGF_MESSAGEBOX
  2309.       PARAMETER (MSGF_MESSAGEBOX=   1)
  2310.       INTEGER*2 MSGF_MENU
  2311.       PARAMETER (MSGF_MENU=         2)
  2312.       INTEGER*2 MSGF_MOVE
  2313.       PARAMETER (MSGF_MOVE=         3)
  2314.       INTEGER*2 MSGF_SIZE
  2315.       PARAMETER (MSGF_SIZE=         4)
  2316.       INTEGER*2 MSGF_SCROLLBAR
  2317.       PARAMETER (MSGF_SCROLLBAR=    5)
  2318.       INTEGER*2 MSGF_NEXTWINDOW
  2319.       PARAMETER (MSGF_NEXTWINDOW=   6)
  2320.  
  2321. C
  2322. C Window Manager Hook Codes
  2323. C
  2324.       INTEGER*2 WC_INIT
  2325.       PARAMETER (WC_INIT=           1)
  2326.       INTEGER*2 WC_SWP
  2327.       PARAMETER (WC_SWP=            2)
  2328.       INTEGER*2 WC_DEFWINDOWPROC
  2329.       PARAMETER (WC_DEFWINDOWPROC=  3)
  2330.       INTEGER*2 WC_MINMAX
  2331.       PARAMETER (WC_MINMAX=         4)
  2332.       INTEGER*2 WC_MOVE
  2333.       PARAMETER (WC_MOVE=           5)
  2334.       INTEGER*2 WC_SIZE
  2335.       PARAMETER (WC_SIZE=           6)
  2336.       INTEGER*2 WC_DRAWCAPTION
  2337.       PARAMETER (WC_DRAWCAPTION=    7)
  2338.  
  2339. C
  2340. C Message Structure used in Journaling
  2341. C
  2342.       STRUCTURE /EVENTMSG/
  2343.      INTEGER*2 message
  2344.      INTEGER*2 paramL
  2345.      INTEGER*2 paramH
  2346.      INTEGER*4 time
  2347.       END STRUCTURE
  2348.  
  2349. !typedef EVENTMSG           *PEVENTMSGMSG;
  2350. !typedef EVENTMSG NEAR      *NPEVENTMSGMSG;
  2351. !typedef EVENTMSG FAR       *LPEVENTMSGMSG;
  2352.  
  2353. $ENDIF ! NOWH
  2354.  
  2355.       STRUCTURE /WNDCLASS/
  2356.      INTEGER*2 style
  2357.      INTEGER*4 lpfnWndProc
  2358.      INTEGER*2 cbClsExtra
  2359.      INTEGER*2 cbWndExtra
  2360.      INTEGER*2 hInstance
  2361.      INTEGER*2 hIcon
  2362.      INTEGER*2 hCursor
  2363.      INTEGER*2 hbrBackground
  2364.      INTEGER*4 lpszMenuName ! LPSTR
  2365.      INTEGER*4 lpszClassName ! LPSTR
  2366.       END STRUCTURE
  2367.  
  2368. !typedef WNDCLASS           *PWNDCLASS;
  2369. !typedef WNDCLASS NEAR      *NPWNDCLASS;
  2370. !typedef WNDCLASS FAR       *LPWNDCLASS;
  2371.  
  2372. $IF DEFINED(MSG)
  2373. C
  2374. C Message structure
  2375. C
  2376.       STRUCTURE /MSG/
  2377.      INTEGER*2 hwnd
  2378.      INTEGER*2 message
  2379.      INTEGER*2 wParam
  2380.      INTEGER*4 lParam
  2381.      INTEGER*4 time
  2382.      RECORD /POINT/ pt
  2383.       END STRUCTURE
  2384.  
  2385. !typedef MSG                *PMSG;
  2386. !typedef MSG NEAR           *NPMSG;
  2387. !typedef MSG FAR            *LPMSG;
  2388.  
  2389. $ENDIF ! NOMSG
  2390.  
  2391. $IF DEFINED(WINOFFSETS)
  2392.  
  2393. C
  2394. C Window field offsets for GetWindowLong() and GetWindowWord()
  2395. C
  2396.       INTEGER*2 GWL_WNDPROC
  2397.       PARAMETER (GWL_WNDPROC=       -4)
  2398.       INTEGER*2 GWW_HINSTANCE
  2399.       PARAMETER (GWW_HINSTANCE=     -6)
  2400.       INTEGER*2 GWW_HWNDPARENT
  2401.       PARAMETER (GWW_HWNDPARENT=    -8)
  2402.       INTEGER*2 GWW_ID
  2403.       PARAMETER (GWW_ID=            -12)
  2404.       INTEGER*2 GWL_STYLE
  2405.       PARAMETER (GWL_STYLE=         -16)
  2406.       INTEGER*2 GWL_EXSTYLE
  2407.       PARAMETER (GWL_EXSTYLE=       -20)
  2408.  
  2409. C
  2410. C Class field offsets for GetClassLong() and GetClassWord()
  2411. C
  2412.       INTEGER*2 GCL_MENUNAME
  2413.       PARAMETER (GCL_MENUNAME=      -8)
  2414.       INTEGER*2 GCW_HBRBACKGROUND
  2415.       PARAMETER (GCW_HBRBACKGROUND= -10)
  2416.       INTEGER*2 GCW_HCURSOR
  2417.       PARAMETER (GCW_HCURSOR=       -12)
  2418.       INTEGER*2 GCW_HICON
  2419.       PARAMETER (GCW_HICON=         -14)
  2420.       INTEGER*2 GCW_HMODULE
  2421.       PARAMETER (GCW_HMODULE=       -16)
  2422.       INTEGER*2 GCW_CBWNDEXTRA
  2423.       PARAMETER (GCW_CBWNDEXTRA=    -18)
  2424.       INTEGER*2 GCW_CBCLSEXTRA
  2425.       PARAMETER (GCW_CBCLSEXTRA=    -20)
  2426.       INTEGER*2 GCL_WNDPROC
  2427.       PARAMETER (GCL_WNDPROC=       -24)
  2428.       INTEGER*2 GCW_STYLE
  2429.       PARAMETER (GCW_STYLE=         -26)
  2430.  
  2431. $ENDIF ! NOWINOFFSETS
  2432.  
  2433. $IF DEFINED(WINMESSAGES)
  2434.  
  2435. C
  2436. C Window Messages
  2437. C
  2438.       INTEGER*2 WM_NULL
  2439.       PARAMETER (WM_NULL=           #0000)
  2440.       INTEGER*2 WM_CREATE
  2441.       PARAMETER (WM_CREATE=         #0001)
  2442.       INTEGER*2 WM_DESTROY
  2443.       PARAMETER (WM_DESTROY=        #0002)
  2444.       INTEGER*2 WM_MOVE
  2445.       PARAMETER (WM_MOVE=           #0003)
  2446.       INTEGER*2 WM_SIZE
  2447.       PARAMETER (WM_SIZE=           #0005)
  2448.       INTEGER*2 WM_ACTIVATE
  2449.       PARAMETER (WM_ACTIVATE=       #0006)
  2450.       INTEGER*2 WM_SETFOCUS
  2451.       PARAMETER (WM_SETFOCUS=       #0007)
  2452.       INTEGER*2 WM_KILLFOCUS
  2453.       PARAMETER (WM_KILLFOCUS=      #0008)
  2454.       INTEGER*2 WM_ENABLE
  2455.       PARAMETER (WM_ENABLE=         #000A)
  2456.       INTEGER*2 WM_SETREDRAW
  2457.       PARAMETER (WM_SETREDRAW=      #000B)
  2458.       INTEGER*2 WM_SETTEXT
  2459.       PARAMETER (WM_SETTEXT=        #000C)
  2460.       INTEGER*2 WM_GETTEXT
  2461.       PARAMETER (WM_GETTEXT=        #000D)
  2462.       INTEGER*2 WM_GETTEXTLENGTH
  2463.       PARAMETER (WM_GETTEXTLENGTH=  #000E)
  2464.       INTEGER*2 WM_PAINT
  2465.       PARAMETER (WM_PAINT=          #000F)
  2466.       INTEGER*2 WM_CLOSE
  2467.       PARAMETER (WM_CLOSE=          #0010)
  2468.       INTEGER*2 WM_QUERYENDSESSION
  2469.       PARAMETER (WM_QUERYENDSESSION=#0011)
  2470.       INTEGER*2 WM_QUIT
  2471.       PARAMETER (WM_QUIT=           #0012)
  2472.       INTEGER*2 WM_QUERYOPEN
  2473.       PARAMETER (WM_QUERYOPEN=      #0013)
  2474.       INTEGER*2 WM_ERASEBKGND
  2475.       PARAMETER (WM_ERASEBKGND=     #0014)
  2476.       INTEGER*2 WM_SYSCOLORCHANGE
  2477.       PARAMETER (WM_SYSCOLORCHANGE= #0015)
  2478.       INTEGER*2 WM_ENDSESSION
  2479.       PARAMETER (WM_ENDSESSION=     #0016)
  2480.       INTEGER*2 WM_SHOWWINDOW
  2481.       PARAMETER (WM_SHOWWINDOW=     #0018)
  2482.       INTEGER*2 WM_CTLCOLOR
  2483.       PARAMETER (WM_CTLCOLOR=       #0019)
  2484.       INTEGER*2 WM_WININICHANGE
  2485.       PARAMETER (WM_WININICHANGE=   #001A)
  2486.       INTEGER*2 WM_DEVMODECHANGE
  2487.       PARAMETER (WM_DEVMODECHANGE=  #001B)
  2488.       INTEGER*2 WM_ACTIVATEAPP
  2489.       PARAMETER (WM_ACTIVATEAPP=    #001C)
  2490.       INTEGER*2 WM_FONTCHANGE
  2491.       PARAMETER (WM_FONTCHANGE=     #001D)
  2492.       INTEGER*2 WM_TIMECHANGE
  2493.       PARAMETER (WM_TIMECHANGE=     #001E)
  2494.       INTEGER*2 WM_CANCELMODE
  2495.       PARAMETER (WM_CANCELMODE=     #001F)
  2496.       INTEGER*2 WM_SETCURSOR
  2497.       PARAMETER (WM_SETCURSOR=      #0020)
  2498.       INTEGER*2 WM_MOUSEACTIVATE
  2499.       PARAMETER (WM_MOUSEACTIVATE=  #0021)
  2500.       INTEGER*2 WM_CHILDACTIVATE
  2501.       PARAMETER (WM_CHILDACTIVATE=  #0022)
  2502.       INTEGER*2 WM_QUEUESYNC
  2503.       PARAMETER (WM_QUEUESYNC=      #0023)
  2504.       INTEGER*2 WM_GETMINMAXINFO
  2505.       PARAMETER (WM_GETMINMAXINFO=  #0024)
  2506.       INTEGER*2 WM_PAINTICON
  2507.       PARAMETER (WM_PAINTICON=      #0026)
  2508.       INTEGER*2 WM_ICONERASEBKGND
  2509.       PARAMETER (WM_ICONERASEBKGND= #0027)
  2510.       INTEGER*2 WM_NEXTDLGCTL
  2511.       PARAMETER (WM_NEXTDLGCTL=     #0028)
  2512.       INTEGER*2 WM_SPOOLERSTATUS
  2513.       PARAMETER (WM_SPOOLERSTATUS=  #002A)
  2514.       INTEGER*2 WM_DRAWITEM
  2515.       PARAMETER (WM_DRAWITEM=       #002B)
  2516.       INTEGER*2 WM_MEASUREITEM
  2517.       PARAMETER (WM_MEASUREITEM=    #002C)
  2518.       INTEGER*2 WM_DELETEITEM
  2519.       PARAMETER (WM_DELETEITEM=     #002D)
  2520.       INTEGER*2 WM_VKEYTOITEM
  2521.       PARAMETER (WM_VKEYTOITEM=     #002E)
  2522.       INTEGER*2 WM_CHARTOITEM
  2523.       PARAMETER (WM_CHARTOITEM=     #002F)
  2524.       INTEGER*2 WM_SETFONT
  2525.       PARAMETER (WM_SETFONT=        #0030)
  2526.       INTEGER*2 WM_GETFONT
  2527.       PARAMETER (WM_GETFONT=        #0031)
  2528.  
  2529.       INTEGER*2 WM_QUERYDRAGICON
  2530.       PARAMETER (WM_QUERYDRAGICON=  #0037)
  2531.  
  2532.       INTEGER*2 WM_COMPAREITEM
  2533.       PARAMETER (WM_COMPAREITEM=    #0039)
  2534.       INTEGER*2 WM_COMPACTING
  2535.       PARAMETER (WM_COMPACTING=     #0041)
  2536.  
  2537.       INTEGER*2 WM_NCCREATE
  2538.       PARAMETER (WM_NCCREATE=       #0081)
  2539.       INTEGER*2 WM_NCDESTROY
  2540.       PARAMETER (WM_NCDESTROY=      #0082)
  2541.       INTEGER*2 WM_NCCALCSIZE
  2542.       PARAMETER (WM_NCCALCSIZE=     #0083)
  2543.       INTEGER*2 WM_NCHITTEST
  2544.       PARAMETER (WM_NCHITTEST=      #0084)
  2545.       INTEGER*2 WM_NCPAINT
  2546.       PARAMETER (WM_NCPAINT=        #0085)
  2547.       INTEGER*2 WM_NCACTIVATE
  2548.       PARAMETER (WM_NCACTIVATE=     #0086)
  2549.       INTEGER*2 WM_GETDLGCODE
  2550.       PARAMETER (WM_GETDLGCODE=     #0087)
  2551.       INTEGER*2 WM_NCMOUSEMOVE
  2552.       PARAMETER (WM_NCMOUSEMOVE=    #00A0)
  2553.       INTEGER*2 WM_NCLBUTTONDOWN
  2554.       PARAMETER (WM_NCLBUTTONDOWN=  #00A1)
  2555.       INTEGER*2 WM_NCLBUTTONUP
  2556.       PARAMETER (WM_NCLBUTTONUP=    #00A2)
  2557.       INTEGER*2 WM_NCLBUTTONDBLCLK
  2558.       PARAMETER (WM_NCLBUTTONDBLCLK=#00A3)
  2559.       INTEGER*2 WM_NCRBUTTONDOWN
  2560.       PARAMETER (WM_NCRBUTTONDOWN=  #00A4)
  2561.       INTEGER*2 WM_NCRBUTTONUP
  2562.       PARAMETER (WM_NCRBUTTONUP=    #00A5)
  2563.       INTEGER*2 WM_NCRBUTTONDBLCLK
  2564.       PARAMETER (WM_NCRBUTTONDBLCLK=#00A6)
  2565.       INTEGER*2 WM_NCMBUTTONDOWN
  2566.       PARAMETER (WM_NCMBUTTONDOWN=  #00A7)
  2567.       INTEGER*2 WM_NCMBUTTONUP
  2568.       PARAMETER (WM_NCMBUTTONUP=    #00A8)
  2569.       INTEGER*2 WM_NCMBUTTONDBLCLK
  2570.       PARAMETER (WM_NCMBUTTONDBLCLK=#00A9)
  2571.  
  2572.       INTEGER*2 WM_KEYFIRST
  2573.       PARAMETER (WM_KEYFIRST=       #0100)
  2574.       INTEGER*2 WM_KEYDOWN
  2575.       PARAMETER (WM_KEYDOWN=        #0100)
  2576.       INTEGER*2 WM_KEYUP
  2577.       PARAMETER (WM_KEYUP=          #0101)
  2578.       INTEGER*2 WM_CHAR
  2579.       PARAMETER (WM_CHAR=           #0102)
  2580.       INTEGER*2 WM_DEADCHAR
  2581.       PARAMETER (WM_DEADCHAR=       #0103)
  2582.       INTEGER*2 WM_SYSKEYDOWN
  2583.       PARAMETER (WM_SYSKEYDOWN=     #0104)
  2584.       INTEGER*2 WM_SYSKEYUP
  2585.       PARAMETER (WM_SYSKEYUP=       #0105)
  2586.       INTEGER*2 WM_SYSCHAR
  2587.       PARAMETER (WM_SYSCHAR=        #0106)
  2588.       INTEGER*2 WM_SYSDEADCHAR
  2589.       PARAMETER (WM_SYSDEADCHAR=    #0107)
  2590.       INTEGER*2 WM_KEYLAST
  2591.       PARAMETER (WM_KEYLAST=        #0108)
  2592.  
  2593.       INTEGER*2 WM_INITDIALOG
  2594.       PARAMETER (WM_INITDIALOG=     #0110)
  2595.       INTEGER*2 WM_COMMAND
  2596.       PARAMETER (WM_COMMAND=        #0111)
  2597.       INTEGER*2 WM_SYSCOMMAND
  2598.       PARAMETER (WM_SYSCOMMAND=     #0112)
  2599.       INTEGER*2 WM_TIMER
  2600.       PARAMETER (WM_TIMER=          #0113)
  2601.       INTEGER*2 WM_HSCROLL
  2602.       PARAMETER (WM_HSCROLL=        #0114)
  2603.       INTEGER*2 WM_VSCROLL
  2604.       PARAMETER (WM_VSCROLL=        #0115)
  2605.       INTEGER*2 WM_INITMENU
  2606.       PARAMETER (WM_INITMENU=       #0116)
  2607.       INTEGER*2 WM_INITMENUPOPUP
  2608.       PARAMETER (WM_INITMENUPOPUP=  #0117)
  2609.       INTEGER*2 WM_MENUSELECT
  2610.       PARAMETER (WM_MENUSELECT=     #011F)
  2611.       INTEGER*2 WM_MENUCHAR
  2612.       PARAMETER (WM_MENUCHAR=       #0120)
  2613.       INTEGER*2 WM_ENTERIDLE
  2614.       PARAMETER (WM_ENTERIDLE=      #0121)
  2615.  
  2616.       INTEGER*2 WM_MOUSEFIRST
  2617.       PARAMETER (WM_MOUSEFIRST=     #0200)
  2618.       INTEGER*2 WM_MOUSEMOVE
  2619.       PARAMETER (WM_MOUSEMOVE=      #0200)
  2620.       INTEGER*2 WM_LBUTTONDOWN
  2621.       PARAMETER (WM_LBUTTONDOWN=    #0201)
  2622.       INTEGER*2 WM_LBUTTONUP
  2623.       PARAMETER (WM_LBUTTONUP=      #0202)
  2624.       INTEGER*2 WM_LBUTTONDBLCLK
  2625.       PARAMETER (WM_LBUTTONDBLCLK=  #0203)
  2626.       INTEGER*2 WM_RBUTTONDOWN
  2627.       PARAMETER (WM_RBUTTONDOWN=    #0204)
  2628.       INTEGER*2 WM_RBUTTONUP
  2629.       PARAMETER (WM_RBUTTONUP=      #0205)
  2630.       INTEGER*2 WM_RBUTTONDBLCLK
  2631.       PARAMETER (WM_RBUTTONDBLCLK=  #0206)
  2632.       INTEGER*2 WM_MBUTTONDOWN
  2633.       PARAMETER (WM_MBUTTONDOWN=    #0207)
  2634.       INTEGER*2 WM_MBUTTONUP
  2635.       PARAMETER (WM_MBUTTONUP=      #0208)
  2636.       INTEGER*2 WM_MBUTTONDBLCLK
  2637.       PARAMETER (WM_MBUTTONDBLCLK=  #0209)
  2638.       INTEGER*2 WM_MOUSELAST
  2639.       PARAMETER (WM_MOUSELAST=      #0209)
  2640.  
  2641.       INTEGER*2 WM_PARENTNOTIFY
  2642.       PARAMETER (WM_PARENTNOTIFY=   #0210)
  2643.       INTEGER*2 WM_MDICREATE
  2644.       PARAMETER (WM_MDICREATE=      #0220)
  2645.       INTEGER*2 WM_MDIDESTROY
  2646.       PARAMETER (WM_MDIDESTROY=     #0221)
  2647.       INTEGER*2 WM_MDIACTIVATE
  2648.       PARAMETER (WM_MDIACTIVATE=    #0222)
  2649.       INTEGER*2 WM_MDIRESTORE
  2650.       PARAMETER (WM_MDIRESTORE=     #0223)
  2651.       INTEGER*2 WM_MDINEXT
  2652.       PARAMETER (WM_MDINEXT=        #0224)
  2653.       INTEGER*2 WM_MDIMAXIMIZE
  2654.       PARAMETER (WM_MDIMAXIMIZE=    #0225)
  2655.       INTEGER*2 WM_MDITILE
  2656.       PARAMETER (WM_MDITILE=        #0226)
  2657.       INTEGER*2 WM_MDICASCADE
  2658.       PARAMETER (WM_MDICASCADE=     #0227)
  2659.       INTEGER*2 WM_MDIICONARRANGE
  2660.       PARAMETER (WM_MDIICONARRANGE= #0228)
  2661.       INTEGER*2 WM_MDIGETACTIVE
  2662.       PARAMETER (WM_MDIGETACTIVE=   #0229)
  2663.       INTEGER*2 WM_MDISETMENU
  2664.       PARAMETER (WM_MDISETMENU=     #0230)
  2665.  
  2666.       INTEGER*2 WM_CUT
  2667.       PARAMETER (WM_CUT=            #0300)
  2668.       INTEGER*2 WM_COPY
  2669.       PARAMETER (WM_COPY=           #0301)
  2670.       INTEGER*2 WM_PASTE
  2671.       PARAMETER (WM_PASTE=          #0302)
  2672.       INTEGER*2 WM_CLEAR
  2673.       PARAMETER (WM_CLEAR=          #0303)
  2674.       INTEGER*2 WM_UNDO
  2675.       PARAMETER (WM_UNDO=           #0304)
  2676.       INTEGER*2 WM_RENDERFORMAT
  2677.       PARAMETER (WM_RENDERFORMAT=   #0305)
  2678.       INTEGER*2 WM_RENDERALLFORMATS
  2679.       PARAMETER (WM_RENDERALLFORMATS=#0306)
  2680.       INTEGER*2 WM_DESTROYCLIPBOARD
  2681.       PARAMETER (WM_DESTROYCLIPBOARD=#0307)
  2682.       INTEGER*2 WM_DRAWCLIPBOARD
  2683.       PARAMETER (WM_DRAWCLIPBOARD=   #0308)
  2684.       INTEGER*2 WM_PAINTCLIPBOARD
  2685.       PARAMETER (WM_PAINTCLIPBOARD=  #0309)
  2686.       INTEGER*2 WM_VSCROLLCLIPBOARD
  2687.       PARAMETER (WM_VSCROLLCLIPBOARD=#030A)
  2688.       INTEGER*2 WM_SIZECLIPBOARD
  2689.       PARAMETER (WM_SIZECLIPBOARD=   #030B)
  2690.       INTEGER*2 WM_ASKCBFORMATNAME
  2691.       PARAMETER (WM_ASKCBFORMATNAME= #030C)
  2692.       INTEGER*2 WM_CHANGECBCHAIN
  2693.       PARAMETER (WM_CHANGECBCHAIN=   #030D)
  2694.       INTEGER*2 WM_HSCROLLCLIPBOARD
  2695.       PARAMETER (WM_HSCROLLCLIPBOARD=#030E)
  2696.       INTEGER*2 WM_QUERYNEWPALETTE
  2697.       PARAMETER (WM_QUERYNEWPALETTE= #030F)
  2698.       INTEGER*2 WM_PALETTEISCHANGING
  2699.       PARAMETER (WM_PALETTEISCHANGING=#0310)
  2700.       INTEGER*2 WM_PALETTECHANGED
  2701.       PARAMETER (WM_PALETTECHANGED=  #0311)
  2702.  
  2703. C
  2704. C NOTE: All Message Numbers below #0400 are RESERVED.
  2705. C
  2706. C Private Window Messages Start Here:
  2707. C
  2708.       INTEGER*2 WM_USER
  2709.       PARAMETER (WM_USER=           #0400)
  2710.  
  2711. $IF DEFINED(NCMESSAGES)
  2712.  
  2713. C
  2714. C WM_SYNCTASK Commands
  2715. C
  2716.       INTEGER*2 ST_BEGINSWP
  2717.       PARAMETER (ST_BEGINSWP=       0)
  2718.       INTEGER*2 ST_ENDSWP
  2719.       PARAMETER (ST_ENDSWP=         1)
  2720.  
  2721. C
  2722. C WinWhere() Area Codes
  2723. C
  2724.       INTEGER*2 HTERROR
  2725.       PARAMETER (HTERROR=          -2)
  2726.       INTEGER*2 HTTRANSPARENT
  2727.       PARAMETER (HTTRANSPARENT=    -1)
  2728.       INTEGER*2 HTNOWHERE
  2729.       PARAMETER (HTNOWHERE=         0)
  2730.       INTEGER*2 HTCLIENT
  2731.       PARAMETER (HTCLIENT=          1)
  2732.       INTEGER*2 HTCAPTION
  2733.       PARAMETER (HTCAPTION=         2)
  2734.       INTEGER*2 HTSYSMENU
  2735.       PARAMETER (HTSYSMENU=         3)
  2736.       INTEGER*2 HTGROWBOX
  2737.       PARAMETER (HTGROWBOX=         4)
  2738.       INTEGER*2 HTSIZE
  2739.       PARAMETER (HTSIZE=            HTGROWBOX)
  2740.       INTEGER*2 HTMENU
  2741.       PARAMETER (HTMENU=            5)
  2742.       INTEGER*2 HTHSCROLL
  2743.       PARAMETER (HTHSCROLL=         6)
  2744.       INTEGER*2 HTVSCROLL
  2745.       PARAMETER (HTVSCROLL=         7)
  2746.       INTEGER*2 HTREDUCE
  2747.       PARAMETER (HTREDUCE=          8)
  2748.       INTEGER*2 HTZOOM
  2749.       PARAMETER (HTZOOM=            9)
  2750.       INTEGER*2 HTLEFT
  2751.       PARAMETER (HTLEFT=            10)
  2752.       INTEGER*2 HTRIGHT
  2753.       PARAMETER (HTRIGHT=           11)
  2754.       INTEGER*2 HTTOP
  2755.       PARAMETER (HTTOP=             12)
  2756.       INTEGER*2 HTTOPLEFT
  2757.       PARAMETER (HTTOPLEFT=         13)
  2758.       INTEGER*2 HTTOPRIGHT
  2759.       PARAMETER (HTTOPRIGHT=        14)
  2760.       INTEGER*2 HTBOTTOM
  2761.       PARAMETER (HTBOTTOM=          15)
  2762.       INTEGER*2 HTBOTTOMLEFT
  2763.       PARAMETER (HTBOTTOMLEFT=      16)
  2764.       INTEGER*2 HTBOTTOMRIGHT
  2765.       PARAMETER (HTBOTTOMRIGHT=     17)
  2766.       INTEGER*2 HTSIZEFIRST
  2767.       PARAMETER (HTSIZEFIRST=       HTLEFT)
  2768.       INTEGER*2 HTSIZELAST
  2769.       PARAMETER (HTSIZELAST=        HTBOTTOMRIGHT)
  2770.  
  2771. $ENDIF ! NONCMESSAGES
  2772.  
  2773. C
  2774. C WM_MOUSEACTIVATE Return Codes
  2775. C
  2776.       INTEGER*2 MA_ACTIVATE
  2777.       PARAMETER (MA_ACTIVATE=       1)
  2778.       INTEGER*2 MA_ACTIVATEANDEAT
  2779.       PARAMETER (MA_ACTIVATEANDEAT= 2)
  2780.       INTEGER*2 MA_NOACTIVATE
  2781.       PARAMETER (MA_NOACTIVATE=     3)
  2782.  
  2783.       INTEGER*2 RegisterWindowMessage [EXTERN]
  2784.  
  2785. C
  2786. C Size Message Commands
  2787. C
  2788.       INTEGER*2 SIZENORMAL
  2789.       PARAMETER (SIZENORMAL=        0)
  2790.       INTEGER*2 SIZEICONIC
  2791.       PARAMETER (SIZEICONIC=        1)
  2792.       INTEGER*2 SIZEFULLSCREEN
  2793.       PARAMETER (SIZEFULLSCREEN=    2)
  2794.       INTEGER*2 SIZEZOOMSHOW
  2795.       PARAMETER (SIZEZOOMSHOW=      3)
  2796.       INTEGER*2 SIZEZOOMHIDE
  2797.       PARAMETER (SIZEZOOMHIDE=      4)
  2798.  
  2799. $IF DEFINED(KEYSTATES)
  2800.  
  2801. C
  2802. C Key State Masks for Mouse Messages
  2803. C
  2804.       INTEGER*2 MK_LBUTTON
  2805.       PARAMETER (MK_LBUTTON=        #0001)
  2806.       INTEGER*2 MK_RBUTTON
  2807.       PARAMETER (MK_RBUTTON=        #0002)
  2808.       INTEGER*2 MK_SHIFT
  2809.       PARAMETER (MK_SHIFT=          #0004)
  2810.       INTEGER*2 MK_CONTROL
  2811.       PARAMETER (MK_CONTROL=        #0008)
  2812.       INTEGER*2 MK_MBUTTON
  2813.       PARAMETER (MK_MBUTTON=        #0010)
  2814.  
  2815. $ENDIF ! NOKEYSTATES
  2816.  
  2817. $ENDIF ! NOWINMESSAGES
  2818.  
  2819. $IF DEFINED(WINSTYLES)
  2820.  
  2821. C
  2822. C Window Styles
  2823. C
  2824.       INTEGER*4 WS_OVERLAPPED
  2825.       PARAMETER (WS_OVERLAPPED=     #00000000)
  2826.       INTEGER*4 WS_POPUP
  2827.       PARAMETER (WS_POPUP=          #80000000)
  2828.       INTEGER*4 WS_CHILD
  2829.       PARAMETER (WS_CHILD=          #40000000)
  2830.       INTEGER*4 WS_MINIMIZE
  2831.       PARAMETER (WS_MINIMIZE=       #20000000)
  2832.       INTEGER*4 WS_VISIBLE
  2833.       PARAMETER (WS_VISIBLE=        #10000000)
  2834.       INTEGER*4 WS_DISABLED
  2835.       PARAMETER (WS_DISABLED=       #08000000)
  2836.       INTEGER*4 WS_CLIPSIBLINGS
  2837.       PARAMETER (WS_CLIPSIBLINGS=   #04000000)
  2838.       INTEGER*4 WS_CLIPCHILDREN
  2839.       PARAMETER (WS_CLIPCHILDREN=   #02000000)
  2840.       INTEGER*4 WS_MAXIMIZE
  2841.       PARAMETER (WS_MAXIMIZE=       #01000000)
  2842.       INTEGER*4 WS_CAPTION
  2843.       PARAMETER (WS_CAPTION=        #00C00000) ! WS_BORDER .OR. WS_DLGFRAME
  2844.       INTEGER*4 WS_BORDER
  2845.       PARAMETER (WS_BORDER=         #00800000)
  2846.       INTEGER*4 WS_DLGFRAME
  2847.       PARAMETER (WS_DLGFRAME=       #00400000)
  2848.       INTEGER*4 WS_VSCROLL
  2849.       PARAMETER (WS_VSCROLL=        #00200000)
  2850.       INTEGER*4 WS_HSCROLL
  2851.       PARAMETER (WS_HSCROLL=        #00100000)
  2852.       INTEGER*4 WS_SYSMENU
  2853.       PARAMETER (WS_SYSMENU=        #00080000)
  2854.       INTEGER*4 WS_THICKFRAME
  2855.       PARAMETER (WS_THICKFRAME=     #00040000)
  2856.       INTEGER*4 WS_GROUP
  2857.       PARAMETER (WS_GROUP=          #00020000)
  2858.       INTEGER*4 WS_TABSTOP
  2859.       PARAMETER (WS_TABSTOP=        #00010000)
  2860.  
  2861.       INTEGER*4 WS_MINIMIZEBOX
  2862.       PARAMETER (WS_MINIMIZEBOX=    #00020000)
  2863.       INTEGER*4 WS_MAXIMIZEBOX
  2864.       PARAMETER (WS_MAXIMIZEBOX=    #00010000)
  2865.  
  2866.       INTEGER*4 WS_TILED
  2867.       PARAMETER (WS_TILED=          WS_OVERLAPPED)
  2868.       INTEGER*4 WS_ICONIC
  2869.       PARAMETER (WS_ICONIC=         WS_MINIMIZE)
  2870.       INTEGER*4 WS_SIZEBOX
  2871.       PARAMETER (WS_SIZEBOX=        WS_THICKFRAME)
  2872.  
  2873. C
  2874. C Common Window Styles
  2875. C
  2876.       INTEGER*4 WS_OVERLAPPEDWINDOW
  2877.       PARAMETER (WS_OVERLAPPEDWINDOW=WS_OVERLAPPED.OR.WS_CAPTION.OR.
  2878.      *  WS_SYSMENU.OR.WS_THICKFRAME.OR.WS_MINIMIZEBOX.OR.WS_MAXIMIZEBOX)
  2879.       INTEGER*4 WS_POPUPWINDOW
  2880.       PARAMETER (WS_POPUPWINDOW=WS_POPUP.OR.WS_BORDER.OR.WS_SYSMENU)
  2881.       INTEGER*4 WS_CHILDWINDOW
  2882.       PARAMETER (WS_CHILDWINDOW=WS_CHILD)
  2883.  
  2884.       INTEGER*4 WS_TILEDWINDOW
  2885.       PARAMETER (WS_TILEDWINDOW=WS_OVERLAPPEDWINDOW)
  2886.  
  2887. C
  2888. C Extended Window Styles
  2889. C
  2890.       INTEGER*2 WS_EX_DLGMODALFRAME
  2891.       PARAMETER (WS_EX_DLGMODALFRAME=#00000001)
  2892.       INTEGER*2 WS_EX_NOPARENTNOTIFY
  2893.       PARAMETER (WS_EX_NOPARENTNOTIFY=#00000004)
  2894.  
  2895. C
  2896. C Class styles
  2897. C
  2898.       INTEGER*2 CS_VREDRAW
  2899.       PARAMETER (CS_VREDRAW=        #0001)
  2900.       INTEGER*2 CS_HREDRAW
  2901.       PARAMETER (CS_HREDRAW=        #0002)
  2902.       INTEGER*2 CS_KEYCVTWINDOW
  2903.       PARAMETER (CS_KEYCVTWINDOW=   #0004)
  2904.       INTEGER*2 CS_DBLCLKS
  2905.       PARAMETER (CS_DBLCLKS=        #0008)
  2906. C                                   #0010 -- no longer used
  2907.       INTEGER*2 CS_OWNDC
  2908.       PARAMETER (CS_OWNDC=          #0020)
  2909.       INTEGER*2 CS_CLASSDC
  2910.       PARAMETER (CS_CLASSDC=        #0040)
  2911.       INTEGER*2 CS_PARENTDC
  2912.       PARAMETER (CS_PARENTDC=       #0080)
  2913.       INTEGER*2 CS_NOKEYCVT
  2914.       PARAMETER (CS_NOKEYCVT=       #0100)
  2915.       INTEGER*2 CS_NOCLOSE
  2916.       PARAMETER (CS_NOCLOSE=        #0200)
  2917.       INTEGER*2 CS_SAVEBITS
  2918.       PARAMETER (CS_SAVEBITS=       #0800)
  2919.       INTEGER*2 CS_BYTEALIGNCLIENT
  2920.       PARAMETER (CS_BYTEALIGNCLIENT=#1000)
  2921.       INTEGER*2 CS_BYTEALIGNWINDOW
  2922.       PARAMETER (CS_BYTEALIGNWINDOW=#2000)
  2923.       INTEGER*2 CS_GLOBALCLASS
  2924.       PARAMETER (CS_GLOBALCLASS=    #4000)   ! Global window class
  2925.  
  2926. $ENDIF ! NOWINSTYLES
  2927.  
  2928. $IF DEFINED(CLIPBOARD)
  2929.  
  2930. C
  2931. C Predefined Clipboard Formats
  2932. C
  2933.       INTEGER*2 CF_TEXT
  2934.       PARAMETER (CF_TEXT=           1)
  2935.       INTEGER*2 CF_BITMAP
  2936.       PARAMETER (CF_BITMAP=         2)
  2937.       INTEGER*2 CF_METAFILEPICT
  2938.       PARAMETER (CF_METAFILEPICT=   3)
  2939.       INTEGER*2 CF_SYLK
  2940.       PARAMETER (CF_SYLK=           4)
  2941.       INTEGER*2 CF_DIF
  2942.       PARAMETER (CF_DIF=            5)
  2943.       INTEGER*2 CF_TIFF
  2944.       PARAMETER (CF_TIFF=           6)
  2945.       INTEGER*2 CF_OEMTEXT
  2946.       PARAMETER (CF_OEMTEXT=        7)
  2947.       INTEGER*2 CF_DIB
  2948.       PARAMETER (CF_DIB=            8)
  2949.       INTEGER*2 CF_PALETTE
  2950.       PARAMETER (CF_PALETTE=        9)
  2951.  
  2952.       INTEGER*2 CF_OWNERDISPLAY
  2953.       PARAMETER (CF_OWNERDISPLAY=   #0080)
  2954.       INTEGER*2 CF_DSPTEXT
  2955.       PARAMETER (CF_DSPTEXT=        #0081)
  2956.       INTEGER*2 CF_DSPBITMAP
  2957.       PARAMETER (CF_DSPBITMAP=      #0082)
  2958.       INTEGER*2 CF_DSPMETAFILEPICT
  2959.       PARAMETER (CF_DSPMETAFILEPICT=#0083)
  2960.  
  2961. C
  2962. C "Private" formats don't get GlobalFree()'d
  2963. C
  2964.       INTEGER*2 CF_PRIVATEFIRST
  2965.       PARAMETER (CF_PRIVATEFIRST=   #0200)
  2966.       INTEGER*2 CF_PRIVATELAST
  2967.       PARAMETER (CF_PRIVATELAST=    #02FF)
  2968.  
  2969. C
  2970. C "GDIOBJ" formats do get DeleteObject()'d
  2971. C
  2972.       INTEGER*2 CF_GDIOBJFIRST
  2973.       PARAMETER (CF_GDIOBJFIRST=    #0300)
  2974.       INTEGER*2 CF_GDIOBJLAST
  2975.       PARAMETER (CF_GDIOBJLAST=     #03FF)
  2976.  
  2977. $ENDIF ! NOCLIPBOARD
  2978.  
  2979.       STRUCTURE /PAINTSTRUCT/
  2980.      INTEGER*2 hdc
  2981.      INTEGER*2 fErase ! BOOL
  2982.      RECORD /RECT/ rcPaint
  2983.      INTEGER*2 fRestore ! BOOL
  2984.      INTEGER*2 fIncUpdate ! BOOL
  2985.      BYTE rgbReserved(16)
  2986.       END STRUCTURE
  2987.  
  2988. !typedef PAINTSTRUCT        *PPAINTSTRUCT;
  2989. !typedef PAINTSTRUCT NEAR    *NPPAINTSTRUCT;
  2990. !typedef PAINTSTRUCT FAR     *LPPAINTSTRUCT;
  2991.  
  2992.       STRUCTURE /CREATESTRUCT/
  2993.      INTEGER*4 lpCreateParams ! LPSTR
  2994.      INTEGER*2 hInstance
  2995.      INTEGER*2 hMenu
  2996.      INTEGER*2 hwndParent ! HWND
  2997.      INTEGER*2 cy
  2998.      INTEGER*2 cx
  2999.      INTEGER*2 y
  3000.      INTEGER*2 x
  3001.      INTEGER*4 style
  3002.      INTEGER*4 lpszName ! LPSTR
  3003.      INTEGER*4 lpszClass ! LPSTR
  3004.      INTEGER*2 dwExStyle
  3005.       END STRUCTURE
  3006.  
  3007. !typedef CREATESTRUCT FAR    *LPCREATESTRUCT;
  3008.  
  3009. C
  3010. C Owner draw control types
  3011. C
  3012.       INTEGER*2 ODT_MENU
  3013.       PARAMETER (ODT_MENU=      1)
  3014.       INTEGER*2 ODT_LISTBOX
  3015.       PARAMETER (ODT_LISTBOX=   2)
  3016.       INTEGER*2 ODT_COMBOBOX
  3017.       PARAMETER (ODT_COMBOBOX=  3)
  3018.       INTEGER*2 ODT_BUTTON
  3019.       PARAMETER (ODT_BUTTON=    4)
  3020.  
  3021. C
  3022. C Owner draw actions
  3023. C
  3024.       INTEGER*2 ODA_DRAWENTIRE
  3025.       PARAMETER (ODA_DRAWENTIRE=#0001)
  3026.       INTEGER*2 ODA_SELECT
  3027.       PARAMETER (ODA_SELECT=    #0002)
  3028.       INTEGER*2 ODA_FOCUS
  3029.       PARAMETER (ODA_FOCUS=     #0004)
  3030.  
  3031. C
  3032. C Owner draw state
  3033. C
  3034.       INTEGER*2 ODS_SELECTED
  3035.       PARAMETER (ODS_SELECTED=  #0001)
  3036.       INTEGER*2 ODS_GRAYED
  3037.       PARAMETER (ODS_GRAYED=    #0002)
  3038.       INTEGER*2 ODS_DISABLED
  3039.       PARAMETER (ODS_DISABLED=  #0004)
  3040.       INTEGER*2 ODS_CHECKED
  3041.       PARAMETER (ODS_CHECKED=   #0008)
  3042.       INTEGER*2 ODS_FOCUS
  3043.       PARAMETER (ODS_FOCUS=     #0010)
  3044.  
  3045. C
  3046. C MEASUREITEMSTRUCT for ownerdraw
  3047. C
  3048.       STRUCTURE /MEASUREITEMSTRUCT/
  3049.      INTEGER*2 CtlType
  3050.      INTEGER*2 CtlID
  3051.      INTEGER*2 itemID
  3052.      INTEGER*2 itemWidth
  3053.      INTEGER*2 itemHeight
  3054.      INTEGER*4 itemData
  3055.       END STRUCTURE
  3056.  
  3057. !typedef MEASUREITEMSTRUCT NEAR *PMEASUREITEMSTRUCT;
  3058. !typedef MEASUREITEMSTRUCT FAR  *LPMEASUREITEMSTRUCT;
  3059.  
  3060. C
  3061. C DRAWITEMSTRUCT for ownerdraw
  3062. C
  3063.       STRUCTURE /DRAWITEMSTRUCT/
  3064.      INTEGER*2 CtlType
  3065.      INTEGER*2 CtlID
  3066.      INTEGER*2 itemID
  3067.      INTEGER*2 itemAction
  3068.      INTEGER*2 itemState
  3069.      INTEGER*2 hwndItem
  3070.      INTEGER*2 hDC
  3071.      RECORD /RECT/ rcItem
  3072.      INTEGER*4 itemData
  3073.       END STRUCTURE
  3074.  
  3075. !typedef DRAWITEMSTRUCT NEAR *PDRAWITEMSTRUCT;
  3076. !typedef DRAWITEMSTRUCT FAR  *LPDRAWITEMSTRUCT;
  3077.  
  3078. C
  3079. C DELETEITEMSTRUCT for ownerdraw
  3080. C
  3081.       STRUCTURE /DELETEITEMSTRUCT/
  3082.      INTEGER*2 CtlType
  3083.      INTEGER*2 CtlID
  3084.      INTEGER*2 itemID
  3085.      INTEGER*2 hwndItem
  3086.      INTEGER*4 itemData
  3087.       END STRUCTURE
  3088.  
  3089. !typedef DELETEITEMSTRUCT NEAR *PDELETEITEMSTRUCT;
  3090. !typedef DELETEITEMSTRUCT FAR  *LPDELETEITEMSTRUCT;
  3091.  
  3092. C
  3093. C COMPAREITEMSTUCT for ownerdraw sorting
  3094. C
  3095.       STRUCTURE /COMPAREITEMSTRUCT/
  3096.      INTEGER*2 CtlType
  3097.      INTEGER*2 CtlID
  3098.      INTEGER*2 hwndItem
  3099.      INTEGER*2 itemID1
  3100.      INTEGER*4 itemData1
  3101.      INTEGER*2 itemID2
  3102.      INTEGER*4 itemData2
  3103.       END STRUCTURE
  3104.  
  3105. !typedef COMPAREITEMSTRUCT NEAR *PCOMPAREITEMSTRUCT;
  3106. !typedef COMPAREITEMSTRUCT FAR  *LPCOMPAREITEMSTRUCT;
  3107.  
  3108. $IF DEFINED(MSG)
  3109.  
  3110. C
  3111. C Message Function Templates
  3112. C
  3113.       INTEGER*2 GetMessage [EXTERN]
  3114.       INTEGER*2 TranslateMessage [EXTERN]
  3115.       INTEGER*4 DispatchMessage [EXTERN]
  3116.       INTEGER*2 PeekMessage [EXTERN]
  3117.  
  3118. C
  3119. C PeekMessage() Options
  3120. C
  3121.       INTEGER*2 PM_NOREMOVE
  3122.       PARAMETER (PM_NOREMOVE=       #0000)
  3123.       INTEGER*2 PM_REMOVE
  3124.       PARAMETER (PM_REMOVE=         #0001)
  3125.       INTEGER*2 PM_NOYIELD
  3126.       PARAMETER (PM_NOYIELD=        #0002)
  3127.  
  3128. $ENDIF ! NOMSG
  3129.  
  3130. $IF DEFINED(WIN_INTERNAL)
  3131. $IF .NOT.DEFINED(LSTRING)
  3132. $DEFINE NOLSTRING
  3133. $ENDIF
  3134. $IF .NOT.DEFINED(LFILEIO)
  3135. $DEFINE NOLFILEIO
  3136. $ENDIF
  3137. $ENDIF
  3138.  
  3139. $IF DEFINED(LSTRING)
  3140. !%int         FAR PASCAL lstrcmp( LPSTR, LPSTR );
  3141. !%int         FAR PASCAL lstrcmpi( LPSTR, LPSTR );
  3142. !%LPSTR       FAR PASCAL lstrcpy( LPSTR, LPSTR );
  3143. !%LPSTR       FAR PASCAL lstrcat( LPSTR, LPSTR );
  3144. !%int         FAR PASCAL lstrlen( LPSTR );
  3145. $ENDIF ! NOLSTRING
  3146.  
  3147. $IF DEFINED(LFILEIO)
  3148. !%int         FAR PASCAL _lopen( LPSTR, int );
  3149. !%int         FAR PASCAL _lclose( int );
  3150. !%int       FAR PASCAL _lcreat( LPSTR, int );
  3151. !%LONG        FAR PASCAL _llseek( int, long, int );
  3152. !%WORD        FAR PASCAL _lread( int, LPSTR, int );
  3153. !%WORD        FAR PASCAL _lwrite( int, LPSTR, int );
  3154.  
  3155.       INTEGER*2 READ
  3156.       PARAMETER (READ=        0)   ! Flags for _lopen
  3157.       INTEGER*2 WRITE
  3158.       PARAMETER (WRITE=       1)
  3159.       INTEGER*2 READ_WRITE
  3160.       PARAMETER (READ_WRITE=   2)
  3161.  
  3162. $ENDIF ! NOLFILEIO
  3163.  
  3164.       INTEGER*2 ExitWindows [EXTERN]
  3165.  
  3166.       INTEGER*2 SwapMouseButton [EXTERN]
  3167.       INTEGER*2 GetMessagePos [EXTERN]
  3168.       INTEGER*2 GetMessageTime [EXTERN]
  3169.  
  3170.       INTEGER*2 GetSysModalWindow [EXTERN]
  3171.       INTEGER*2 SetSysModalWindow [EXTERN]
  3172.  
  3173.       INTEGER*4 SendMessage [EXTERN]
  3174.       INTEGER*2 PostMessage [EXTERN]
  3175.       INTEGER*2 PostAppMessage [EXTERN]
  3176.       INTEGER*4 DefWindowProc [EXTERN]
  3177.       INTEGER*4 CallWindowProc [EXTERN]
  3178.       INTEGER*2 InSendMessage [EXTERN]
  3179.  
  3180.       INTEGER*2 GetDoubleClickTime [EXTERN]
  3181.  
  3182.       INTEGER*2  RegisterClass [EXTERN]
  3183.       INTEGER*2 UnregisterClass [EXTERN]
  3184.       INTEGER*2 GetClassInfo [EXTERN]
  3185.  
  3186.       INTEGER*2 SetMessageQueue [EXTERN]
  3187.  
  3188.       INTEGER*2 CW_USEDEFAULT
  3189.       PARAMETER (CW_USEDEFAULT=     #8000)
  3190.  
  3191.       INTEGER*2 CreateWindow [EXTERN]
  3192.       INTEGER*2 CreateWindowEx [EXTERN]
  3193.  
  3194.       INTEGER*2 IsWindow [EXTERN]
  3195.       INTEGER*2 IsChild [EXTERN]
  3196.       INTEGER*2 DestroyWindow [EXTERN]
  3197.  
  3198.       INTEGER*2 ShowWindow [EXTERN]
  3199.       INTEGER*2 FlashWindow [EXTERN]
  3200.  
  3201.       INTEGER*2 OpenIcon [EXTERN]
  3202.  
  3203. $IF DEFINED(DEFERWINDOWPOS)
  3204.  
  3205.       INTEGER*2 BeginDeferWindowPos [EXTERN]
  3206.       INTEGER*2 DeferWindowPos [EXTERN]
  3207.  
  3208. $ENDIF ! NODEFERWINDOWPOS
  3209.  
  3210.       INTEGER*2 IsWindowVisible [EXTERN]
  3211.       INTEGER*2 IsIconic [EXTERN]
  3212.       INTEGER*2 AnyPopup [EXTERN]
  3213.       INTEGER*2 IsZoomed [EXTERN]
  3214.  
  3215. C
  3216. C SetWindowPos Flags
  3217. C
  3218.       INTEGER*2 SWP_NOSIZE
  3219.       PARAMETER (SWP_NOSIZE=        #0001)
  3220.       INTEGER*2 SWP_NOMOVE
  3221.       PARAMETER (SWP_NOMOVE=        #0002)
  3222.       INTEGER*2 SWP_NOZORDER
  3223.       PARAMETER (SWP_NOZORDER=      #0004)
  3224.       INTEGER*2 SWP_NOREDRAW
  3225.       PARAMETER (SWP_NOREDRAW=      #0008)
  3226.       INTEGER*2 SWP_NOACTIVATE
  3227.       PARAMETER (SWP_NOACTIVATE=    #0010)
  3228.       INTEGER*2 SWP_DRAWFRAME
  3229.       PARAMETER (SWP_DRAWFRAME=     #0020)
  3230.       INTEGER*2 SWP_SHOWWINDOW
  3231.       PARAMETER (SWP_SHOWWINDOW=    #0040)
  3232.       INTEGER*2 SWP_HIDEWINDOW
  3233.       PARAMETER (SWP_HIDEWINDOW=    #0080)
  3234.       INTEGER*2 SWP_NOCOPYBITS
  3235.       PARAMETER (SWP_NOCOPYBITS=    #0100)
  3236.       INTEGER*2 SWP_NOREPOSITION
  3237.       PARAMETER (SWP_NOREPOSITION=  #0200)
  3238.  
  3239. $IF DEFINED(CTLMGR)
  3240.  
  3241.       INTEGER*2 CreateDialog [EXTERN]
  3242.       INTEGER*2 CreateDialogIndirect [EXTERN]
  3243.       INTEGER*2 CreateDialogParam [EXTERN]
  3244.       INTEGER*2 CreateDialogIndirectParam [EXTERN]
  3245.       INTEGER*2 DialogBox [EXTERN]
  3246.       INTEGER*2 DialogBoxIndirect [EXTERN]
  3247.       INTEGER*2 DialogBoxParam [EXTERN]
  3248.       INTEGER*2 DialogBoxIndirectParam [EXTERN]
  3249.       INTEGER*2 GetDlgItem [EXTERN]
  3250.       INTEGER*2 GetDlgItemInt [EXTERN]
  3251.       INTEGER*2 GetDlgItemText [EXTERN]
  3252.       INTEGER*2 IsDlgButtonChecked [EXTERN]
  3253.       INTEGER*4 SendDlgItemMessage [EXTERN]
  3254.       INTEGER*2 GetNextDlgGroupItem [EXTERN]
  3255.       INTEGER*2 GetNextDlgTabItem [EXTERN]
  3256.       INTEGER*2 GetDlgCtrlID [EXTERN]
  3257.       INTEGER*4 GetDialogBaseUnits [EXTERN]
  3258.       INTEGER*4 DefDlgProc [EXTERN]
  3259.  
  3260.       INTEGER*2 DLGWINDOWEXTRA   ! Window extra byted needed for private dialog classes
  3261.       PARAMETER (DLGWINDOWEXTRA=30)
  3262.  
  3263. $ENDIF ! NOCTLMGR
  3264.  
  3265. C
  3266. C Windows Functions
  3267. C
  3268.  
  3269. $IF DEFINED(MSG)
  3270.       INTEGER*2 CallMsgFilter [EXTERN]
  3271. $ENDIF
  3272.  
  3273. $IF DEFINED(CLIPBOARD)
  3274.  
  3275. C
  3276. C Clipboard Manager Functions
  3277. C
  3278.       INTEGER*2 OpenClipboard [EXTERN]
  3279.       INTEGER*2 CloseClipboard [EXTERN]
  3280.       INTEGER*2 GetClipboardOwner [EXTERN]
  3281.       INTEGER*2 SetClipboardViewer [EXTERN]
  3282.       INTEGER*2 GetClipboardViewer [EXTERN]
  3283.       INTEGER*2 ChangeClipboardChain [EXTERN]
  3284.       INTEGER*2 SetClipboardData [EXTERN]
  3285.       INTEGER*2 GetClipboardData [EXTERN]
  3286.       INTEGER*2 RegisterClipboardFormat [EXTERN]
  3287.       INTEGER*2 CountClipboardFormats [EXTERN]
  3288.       INTEGER*2 EnumClipboardFormats [EXTERN]
  3289.       INTEGER*2 GetClipboardFormatName [EXTERN]
  3290.       INTEGER*2 EmptyClipboard [EXTERN]
  3291.       INTEGER*2 IsClipboardFormatAvailable [EXTERN]
  3292.       INTEGER*2 GetPriorityClipboardFormat [EXTERN]
  3293.  
  3294. $ENDIF ! NOCLIPBOARD
  3295.  
  3296.       INTEGER*2 SetFocus [EXTERN]
  3297.       INTEGER*2 GetFocus [EXTERN]
  3298.       INTEGER*2 GetActiveWindow [EXTERN]
  3299.       INTEGER*2 GetKeyState [EXTERN]
  3300.       INTEGER*2 GetAsyncKeyState [EXTERN]
  3301.       INTEGER*2 EnableHardwareInput [EXTERN]
  3302.       INTEGER*2 GetInputState [EXTERN]
  3303.       INTEGER*2 GetCapture [EXTERN]
  3304.       INTEGER*2 SetCapture [EXTERN]
  3305.  
  3306. C
  3307. C Windows Functions
  3308. C
  3309.       INTEGER*2 SetTimer [EXTERN]
  3310.       INTEGER*2 KillTimer [EXTERN]
  3311.       INTEGER*2 EnableWindow [EXTERN]
  3312.       INTEGER*2 IsWindowEnabled [EXTERN]
  3313.       INTEGER*2 LoadAccelerators [EXTERN]
  3314.  
  3315. $IF DEFINED(MSG)
  3316.       INTEGER*2 TranslateAccelerator [EXTERN]
  3317. $ENDIF
  3318.  
  3319. $IF DEFINED(SYSMETRICS)
  3320.  
  3321. C
  3322. C GetSystemMetrics() codes
  3323. C
  3324.       INTEGER*2 SM_CXSCREEN
  3325.       PARAMETER (SM_CXSCREEN=       0)
  3326.       INTEGER*2 SM_CYSCREEN
  3327.       PARAMETER (SM_CYSCREEN=       1)
  3328.       INTEGER*2 SM_CXVSCROLL
  3329.       PARAMETER (SM_CXVSCROLL=      2)
  3330.       INTEGER*2 SM_CYHSCROLL
  3331.       PARAMETER (SM_CYHSCROLL=      3)
  3332.       INTEGER*2 SM_CYCAPTION
  3333.       PARAMETER (SM_CYCAPTION=      4)
  3334.       INTEGER*2 SM_CXBORDER
  3335.       PARAMETER (SM_CXBORDER=       5)
  3336.       INTEGER*2 SM_CYBORDER
  3337.       PARAMETER (SM_CYBORDER=       6)
  3338.       INTEGER*2 SM_CXDLGFRAME
  3339.       PARAMETER (SM_CXDLGFRAME=     7)
  3340.       INTEGER*2 SM_CYDLGFRAME
  3341.       PARAMETER (SM_CYDLGFRAME=     8)
  3342.       INTEGER*2 SM_CYVTHUMB
  3343.       PARAMETER (SM_CYVTHUMB=       9)
  3344.       INTEGER*2 SM_CXHTHUMB
  3345.       PARAMETER (SM_CXHTHUMB=       10)
  3346.       INTEGER*2 SM_CXICON
  3347.       PARAMETER (SM_CXICON=         11)
  3348.       INTEGER*2 SM_CYICON
  3349.       PARAMETER (SM_CYICON=         12)
  3350.       INTEGER*2 SM_CXCURSOR
  3351.       PARAMETER (SM_CXCURSOR=       13)
  3352.       INTEGER*2 SM_CYCURSOR
  3353.       PARAMETER (SM_CYCURSOR=       14)
  3354.       INTEGER*2 SM_CYMENU
  3355.       PARAMETER (SM_CYMENU=         15)
  3356.       INTEGER*2 SM_CXFULLSCREEN
  3357.       PARAMETER (SM_CXFULLSCREEN=   16)
  3358.       INTEGER*2 SM_CYFULLSCREEN
  3359.       PARAMETER (SM_CYFULLSCREEN=   17)
  3360.       INTEGER*2 SM_CYKANJIWINDOW
  3361.       PARAMETER (SM_CYKANJIWINDOW=  18)
  3362.       INTEGER*2 SM_MOUSEPRESENT
  3363.       PARAMETER (SM_MOUSEPRESENT=   19)
  3364.       INTEGER*2 SM_CYVSCROLL
  3365.       PARAMETER (SM_CYVSCROLL=      20)
  3366.       INTEGER*2 SM_CXHSCROLL
  3367.       PARAMETER (SM_CXHSCROLL=      21)
  3368.       INTEGER*2 SM_DEBUG
  3369.       PARAMETER (SM_DEBUG=          22)
  3370.       INTEGER*2 SM_SWAPBUTTON
  3371.       PARAMETER (SM_SWAPBUTTON=     23)
  3372.       INTEGER*2 SM_RESERVED1
  3373.       PARAMETER (SM_RESERVED1=      24)
  3374.       INTEGER*2 SM_RESERVED2
  3375.       PARAMETER (SM_RESERVED2=      25)
  3376.       INTEGER*2 SM_RESERVED3
  3377.       PARAMETER (SM_RESERVED3=      26)
  3378.       INTEGER*2 SM_RESERVED4
  3379.       PARAMETER (SM_RESERVED4=      27)
  3380.       INTEGER*2 SM_CXMIN
  3381.       PARAMETER (SM_CXMIN=          28)
  3382.       INTEGER*2 SM_CYMIN
  3383.       PARAMETER (SM_CYMIN=          29)
  3384.       INTEGER*2 SM_CXSIZE
  3385.       PARAMETER (SM_CXSIZE=         30)
  3386.       INTEGER*2 SM_CYSIZE
  3387.       PARAMETER (SM_CYSIZE=         31)
  3388.       INTEGER*2 SM_CXFRAME
  3389.       PARAMETER (SM_CXFRAME=        32)
  3390.       INTEGER*2 SM_CYFRAME
  3391.       PARAMETER (SM_CYFRAME=        33)
  3392.       INTEGER*2 SM_CXMINTRACK
  3393.       PARAMETER (SM_CXMINTRACK=     34)
  3394.       INTEGER*2 SM_CYMINTRACK
  3395.       PARAMETER (SM_CYMINTRACK=     35)
  3396.       INTEGER*2 SM_CMETRICS
  3397.       PARAMETER (SM_CMETRICS=       36)
  3398.  
  3399.       INTEGER*2 GetSystemMetrics [EXTERN]
  3400.  
  3401. $ENDIF ! NOSYSMETRICS
  3402.  
  3403. $IF DEFINED(MENUS)
  3404.  
  3405.       INTEGER*2 LoadMenu [EXTERN]
  3406.       INTEGER*2 LoadMenuIndirect [EXTERN]
  3407.       INTEGER*2 GetMenu [EXTERN]
  3408.       INTEGER*2 SetMenu [EXTERN]
  3409.       INTEGER*2 ChangeMenu [EXTERN]
  3410.       INTEGER*2 HiliteMenuItem [EXTERN]
  3411.       INTEGER*2 GetMenuString [EXTERN]
  3412.       INTEGER*2 GetMenuState [EXTERN]
  3413.       INTEGER*2 GetSystemMenu [EXTERN]
  3414.       INTEGER*2 CreateMenu [EXTERN]
  3415.       INTEGER*2 CreatePopupMenu [EXTERN]
  3416.       INTEGER*2 DestroyMenu [EXTERN]
  3417.       INTEGER*2 CheckMenuItem [EXTERN]
  3418.       INTEGER*2 EnableMenuItem [EXTERN]
  3419.       INTEGER*2 GetSubMenu [EXTERN]
  3420.       INTEGER*2 GetMenuItemID [EXTERN]
  3421.       INTEGER*2 GetMenuItemCount [EXTERN]
  3422.  
  3423.       INTEGER*2 InsertMenu [EXTERN]
  3424.       INTEGER*2 AppendMenu [EXTERN]
  3425.       INTEGER*2 ModifyMenu [EXTERN]
  3426.       INTEGER*2 RemoveMenu [EXTERN]
  3427.       INTEGER*2 DeleteMenu [EXTERN]
  3428.       INTEGER*2 SetMenuItemBitmaps [EXTERN]
  3429.       INTEGER*4 GetMenuCheckMarkDimensions [EXTERN]
  3430.       INTEGER*2 TrackPopupMenu [EXTERN]
  3431.  
  3432. $ENDIF ! NOMENUS
  3433.  
  3434.       INTEGER*2 GrayString [EXTERN]
  3435.       INTEGER*2 SetActiveWindow [EXTERN]
  3436.  
  3437.       INTEGER*2 BeginPaint [EXTERN]
  3438.       INTEGER*2 GetUpdateRect [EXTERN]
  3439.       INTEGER*2 GetUpdateRgn [EXTERN]
  3440.  
  3441.       INTEGER*2 ExcludeUpdateRgn [EXTERN]
  3442.  
  3443.       INTEGER*2 ScrollDC [EXTERN], ScrollDC_A [EXTERN]
  3444.  
  3445. $IF DEFINED(SCROLL)
  3446.       INTEGER*2 SetScrollPos [EXTERN]
  3447.       INTEGER*2 GetScrollPos [EXTERN]
  3448. $ENDIF
  3449.  
  3450.       INTEGER*2 SetProp [EXTERN], SetProp_A [EXTERN]
  3451.       INTEGER*2 GetProp [EXTERN], GetProp_A [EXTERN]
  3452.       INTEGER*2 RemoveProp [EXTERN]
  3453.       INTEGER*2 EnumProps [EXTERN]
  3454.       INTEGER*2 GetWindowText [EXTERN]
  3455.       INTEGER*2 GetWindowTextLength [EXTERN]
  3456.  
  3457. $IF DEFINED(MB)
  3458.  
  3459. C
  3460. C MessageBox() Flags
  3461. C
  3462.       INTEGER*2 MB_OK
  3463.       PARAMETER (MB_OK=              #0000)
  3464.       INTEGER*2 MB_OKCANCEL
  3465.       PARAMETER (MB_OKCANCEL=        #0001)
  3466.       INTEGER*2 MB_ABORTRETRYIGNORE
  3467.       PARAMETER (MB_ABORTRETRYIGNORE=#0002)
  3468.       INTEGER*2 MB_YESNOCANCEL
  3469.       PARAMETER (MB_YESNOCANCEL=     #0003)
  3470.       INTEGER*2 MB_YESNO
  3471.       PARAMETER (MB_YESNO=           #0004)
  3472.       INTEGER*2 MB_RETRYCANCEL
  3473.       PARAMETER (MB_RETRYCANCEL=     #0005)
  3474.  
  3475.       INTEGER*2 MB_ICONHAND
  3476.       PARAMETER (MB_ICONHAND=        #0010)
  3477.       INTEGER*2 MB_ICONQUESTION
  3478.       PARAMETER (MB_ICONQUESTION=    #0020)
  3479.       INTEGER*2 MB_ICONEXCLAMATION
  3480.       PARAMETER (MB_ICONEXCLAMATION= #0030)
  3481.       INTEGER*2 MB_ICONASTERISK
  3482.       PARAMETER (MB_ICONASTERISK=    #0040)
  3483.  
  3484.       INTEGER*2 MB_ICONINFORMATION
  3485.       PARAMETER (MB_ICONINFORMATION=MB_ICONASTERISK)
  3486.       INTEGER*2 MB_ICONSTOP
  3487.       PARAMETER (MB_ICONSTOP=       MB_ICONHAND)
  3488.  
  3489.       INTEGER*2 MB_DEFBUTTON1
  3490.       PARAMETER (MB_DEFBUTTON1=     #0000)
  3491.       INTEGER*2 MB_DEFBUTTON2
  3492.       PARAMETER (MB_DEFBUTTON2=     #0100)
  3493.       INTEGER*2 MB_DEFBUTTON3
  3494.       PARAMETER (MB_DEFBUTTON3=     #0200)
  3495.  
  3496.       INTEGER*2 MB_APPLMODAL
  3497.       PARAMETER (MB_APPLMODAL=      #0000)
  3498.       INTEGER*2 MB_SYSTEMMODAL
  3499.       PARAMETER (MB_SYSTEMMODAL=    #1000)
  3500.       INTEGER*2 MB_TASKMODAL
  3501.       PARAMETER (MB_TASKMODAL=      #2000)
  3502.  
  3503.       INTEGER*2 MB_NOFOCUS
  3504.       PARAMETER (MB_NOFOCUS=        #8000)
  3505.  
  3506.       INTEGER*2 MB_TYPEMASK
  3507.       PARAMETER (MB_TYPEMASK=       #000F)
  3508.       INTEGER*2 MB_ICONMASK
  3509.       PARAMETER (MB_ICONMASK=       #00F0)
  3510.       INTEGER*2 MB_DEFMASK
  3511.       PARAMETER (MB_DEFMASK=        #0F00)
  3512.       INTEGER*2 MB_MODEMASK
  3513.       PARAMETER (MB_MODEMASK=       #3000)
  3514.       INTEGER*2 MB_MISCMASK
  3515.       PARAMETER (MB_MISCMASK=       #C000)
  3516.  
  3517.       INTEGER*2 MessageBox [EXTERN]
  3518.  
  3519. $ENDIF ! NOMB
  3520.  
  3521.       INTEGER*2 ShowCursor [EXTERN]
  3522.       INTEGER*2 SetCursor [EXTERN]
  3523.  
  3524.       INTEGER*2 GetCaretBlinkTime [EXTERN]
  3525.  
  3526.       INTEGER*2 WindowFromPoint [EXTERN]
  3527.       INTEGER*2 ChildWindowFromPoint [EXTERN]
  3528.  
  3529. $IF DEFINED(COLOR)
  3530.  
  3531. C
  3532. C Color Types
  3533. C
  3534.       INTEGER*2 CTLCOLOR_MSGBOX
  3535.       PARAMETER (CTLCOLOR_MSGBOX=       0)
  3536.       INTEGER*2 CTLCOLOR_EDIT
  3537.       PARAMETER (CTLCOLOR_EDIT=         1)
  3538.       INTEGER*2 CTLCOLOR_LISTBOX
  3539.       PARAMETER (CTLCOLOR_LISTBOX=      2)
  3540.       INTEGER*2 CTLCOLOR_BTN
  3541.       PARAMETER (CTLCOLOR_BTN=          3)
  3542.       INTEGER*2 CTLCOLOR_DLG
  3543.       PARAMETER (CTLCOLOR_DLG=          4)
  3544.       INTEGER*2 CTLCOLOR_SCROLLBAR
  3545.       PARAMETER (CTLCOLOR_SCROLLBAR=    5)
  3546.       INTEGER*2 CTLCOLOR_STATIC
  3547.       PARAMETER (CTLCOLOR_STATIC=       6)
  3548.       INTEGER*2 CTLCOLOR_MAX
  3549.       PARAMETER (CTLCOLOR_MAX=          8)    ! three bits max
  3550.  
  3551.       INTEGER*2 COLOR_SCROLLBAR
  3552.       PARAMETER (COLOR_SCROLLBAR=       0)
  3553.       INTEGER*2 COLOR_BACKGROUND
  3554.       PARAMETER (COLOR_BACKGROUND=      1)
  3555.       INTEGER*2 COLOR_ACTIVECAPTION
  3556.       PARAMETER (COLOR_ACTIVECAPTION=   2)
  3557.       INTEGER*2 COLOR_INACTIVECAPTION
  3558.       PARAMETER (COLOR_INACTIVECAPTION= 3)
  3559.       INTEGER*2 COLOR_MENU
  3560.       PARAMETER (COLOR_MENU=            4)
  3561.       INTEGER*2 COLOR_WINDOW
  3562.       PARAMETER (COLOR_WINDOW=          5)
  3563.       INTEGER*2 COLOR_WINDOWFRAME
  3564.       PARAMETER (COLOR_WINDOWFRAME=     6)
  3565.       INTEGER*2 COLOR_MENUTEXT
  3566.       PARAMETER (COLOR_MENUTEXT=        7)
  3567.       INTEGER*2 COLOR_WINDOWTEXT
  3568.       PARAMETER (COLOR_WINDOWTEXT=      8)
  3569.       INTEGER*2 COLOR_CAPTIONTEXT
  3570.       PARAMETER (COLOR_CAPTIONTEXT=     9)
  3571.       INTEGER*2 COLOR_ACTIVEBORDER
  3572.       PARAMETER (COLOR_ACTIVEBORDER=    10)
  3573.       INTEGER*2 COLOR_INACTIVEBORDER
  3574.       PARAMETER (COLOR_INACTIVEBORDER=  11)
  3575.       INTEGER*2 COLOR_APPWORKSPACE
  3576.       PARAMETER (COLOR_APPWORKSPACE=    12)
  3577.       INTEGER*2 COLOR_HIGHLIGHT
  3578.       PARAMETER (COLOR_HIGHLIGHT=       13)
  3579.       INTEGER*2 COLOR_HIGHLIGHTTEXT
  3580.       PARAMETER (COLOR_HIGHLIGHTTEXT=   14)
  3581.       INTEGER*2 COLOR_BTNFACE
  3582.       PARAMETER (COLOR_BTNFACE=         15)
  3583.       INTEGER*2 COLOR_BTNSHADOW
  3584.       PARAMETER (COLOR_BTNSHADOW=       16)
  3585.       INTEGER*2 COLOR_GRAYTEXT
  3586.       PARAMETER (COLOR_GRAYTEXT=        17)
  3587.       INTEGER*2 COLOR_BTNTEXT
  3588.       PARAMETER (COLOR_BTNTEXT=         18)
  3589.       INTEGER*2 COLOR_ENDCOLORS
  3590.       PARAMETER (COLOR_ENDCOLORS=COLOR_BTNTEXT)
  3591.  
  3592.       INTEGER*4 GetSysColor [EXTERN]
  3593.  
  3594. $ENDIF ! NOCOLOR
  3595.  
  3596.       INTEGER*2 FillRgn [EXTERN]
  3597.       INTEGER*2 FrameRgn [EXTERN]
  3598.       INTEGER*2 InvertRgn [EXTERN]
  3599.       INTEGER*2 PaintRgn [EXTERN]
  3600.       INTEGER*2 PtInRegion [EXTERN]
  3601.  
  3602.       INTEGER*2 FillRect [EXTERN]
  3603.       INTEGER*2 FrameRect [EXTERN]
  3604.       INTEGER*2 CopyRect [EXTERN]
  3605.       INTEGER*2 IntersectRect [EXTERN]
  3606.       INTEGER*2 UnionRect [EXTERN]
  3607.       INTEGER*2 IsRectEmpty [EXTERN]
  3608.       INTEGER*2 EqualRect [EXTERN]
  3609.       INTEGER*2 PtInRect [EXTERN]
  3610.       INTEGER*2 RectVisible [EXTERN]
  3611.       INTEGER*2 RectInRegion [EXTERN]
  3612.  
  3613.       INTEGER*4 GetCurrentTime [EXTERN]
  3614.       INTEGER*4 GetTickCount [EXTERN]
  3615.  
  3616. $IF DEFINED(WINOFFSETS)
  3617.  
  3618.       INTEGER*2 GetWindowWord [EXTERN]
  3619.       INTEGER*2 SetWindowWord [EXTERN]
  3620.       INTEGER*4 GetWindowLong [EXTERN]
  3621.       INTEGER*4 SetWindowLong [EXTERN]
  3622.       INTEGER*2 GetClassWord [EXTERN]
  3623.       INTEGER*2 SetClassWord [EXTERN]
  3624.       INTEGER*4 GetClassLong [EXTERN]
  3625.       INTEGER*4 SetClassLong [EXTERN]
  3626.       INTEGER*2 GetDesktopHwnd [EXTERN]
  3627.       INTEGER*2 GetDesktopWindow [EXTERN]
  3628.  
  3629. $ENDIF ! NOWINOFFSETS
  3630.  
  3631.       INTEGER*2 GetParent [EXTERN]
  3632.       INTEGER*2 SetParent [EXTERN]
  3633.       INTEGER*2 EnumChildWindows [EXTERN]
  3634.       INTEGER*2 FindWindow [EXTERN]
  3635.       INTEGER*2 EnumWindows [EXTERN]
  3636.       INTEGER*2 EnumTaskWindows [EXTERN]
  3637.       INTEGER*2 GetClassName [EXTERN]
  3638.       INTEGER*2 GetTopWindow [EXTERN]
  3639.       INTEGER*2 GetNextWindow [EXTERN]
  3640.       INTEGER*2 GetWindowTask [EXTERN]
  3641.       INTEGER*2 GetLastActivePopup [EXTERN]
  3642.  
  3643. C
  3644. C GetWindow() Constants
  3645. C
  3646.       INTEGER*2 GW_HWNDFIRST
  3647.       PARAMETER (GW_HWNDFIRST=      0)
  3648.       INTEGER*2 GW_HWNDLAST
  3649.       PARAMETER (GW_HWNDLAST=       1)
  3650.       INTEGER*2 GW_HWNDNEXT
  3651.       PARAMETER (GW_HWNDNEXT=       2)
  3652.       INTEGER*2 GW_HWNDPREV
  3653.       PARAMETER (GW_HWNDPREV=       3)
  3654.       INTEGER*2 GW_OWNER
  3655.       PARAMETER (GW_OWNER=          4)
  3656.       INTEGER*2 GW_CHILD
  3657.       PARAMETER (GW_CHILD=          5)
  3658.  
  3659.       INTEGER*2 GetWindow [EXTERN]
  3660.  
  3661. $IF DEFINED(WH)
  3662.       INTEGER*4 SetWindowsHook [EXTERN]
  3663.       INTEGER*2 UnhookWindowsHook [EXTERN]
  3664.       INTEGER*4 DefHookProc [EXTERN]
  3665. $ENDIF ! NOWH
  3666.  
  3667. $IF DEFINED(MENUS)
  3668.  
  3669. C
  3670. C Menu flags for Add/Check/EnableMenuItem()
  3671. C
  3672.       INTEGER*2 MF_INSERT
  3673.       PARAMETER (MF_INSERT=        #0000)
  3674.       INTEGER*2 MF_CHANGE
  3675.       PARAMETER (MF_CHANGE=        #0080)
  3676.       INTEGER*2 MF_APPEND
  3677.       PARAMETER (MF_APPEND=        #0100)
  3678.       INTEGER*2 MF_DELETE
  3679.       PARAMETER (MF_DELETE=        #0200)
  3680.       INTEGER*2 MF_REMOVE
  3681.       PARAMETER (MF_REMOVE=        #1000)
  3682.  
  3683.       INTEGER*2 MF_BYCOMMAND
  3684.       PARAMETER (MF_BYCOMMAND=     #0000)
  3685.       INTEGER*2 MF_BYPOSITION
  3686.       PARAMETER (MF_BYPOSITION=    #0400)
  3687.  
  3688.       INTEGER*2 MF_SEPARATOR
  3689.       PARAMETER (MF_SEPARATOR=     #0800)
  3690.  
  3691.       INTEGER*2 MF_ENABLED
  3692.       PARAMETER (MF_ENABLED=       #0000)
  3693.       INTEGER*2 MF_GRAYED
  3694.       PARAMETER (MF_GRAYED=        #0001)
  3695.       INTEGER*2 MF_DISABLED
  3696.       PARAMETER (MF_DISABLED=      #0002)
  3697.  
  3698.       INTEGER*2 MF_UNCHECKED
  3699.       PARAMETER (MF_UNCHECKED=     #0000)
  3700.       INTEGER*2 MF_CHECKED
  3701.       PARAMETER (MF_CHECKED=       #0008)
  3702.       INTEGER*2 MF_USECHECKBITMAPS
  3703.       PARAMETER (MF_USECHECKBITMAPS=#0200)
  3704.  
  3705.       INTEGER*2 MF_STRING
  3706.       PARAMETER (MF_STRING=        #0000)
  3707.       INTEGER*2 MF_BITMAP
  3708.       PARAMETER (MF_BITMAP=        #0004)
  3709.       INTEGER*2 MF_OWNERDRAW
  3710.       PARAMETER (MF_OWNERDRAW=     #0100)
  3711.  
  3712.       INTEGER*2 MF_POPUP
  3713.       PARAMETER (MF_POPUP=         #0010)
  3714.       INTEGER*2 MF_MENUBARBREAK
  3715.       PARAMETER (MF_MENUBARBREAK=  #0020)
  3716.       INTEGER*2 MF_MENUBREAK
  3717.       PARAMETER (MF_MENUBREAK=     #0040)
  3718.  
  3719.       INTEGER*2 MF_UNHILITE
  3720.       PARAMETER (MF_UNHILITE=      #0000)
  3721.       INTEGER*2 MF_HILITE
  3722.       PARAMETER (MF_HILITE=        #0080)
  3723.  
  3724.       INTEGER*2 MF_SYSMENU
  3725.       PARAMETER (MF_SYSMENU=       #2000)
  3726.       INTEGER*2 MF_HELP
  3727.       PARAMETER (MF_HELP=          #4000)
  3728.       INTEGER*2 MF_MOUSESELECT
  3729.       PARAMETER (MF_MOUSESELECT=   #8000)
  3730.  
  3731. C
  3732. C Menu item resource format
  3733. C
  3734.       STRUCTURE /MENUITEMTEMPLATEHEADER/
  3735.      INTEGER*2 versionNumber
  3736.      INTEGER*2 offset
  3737.       END STRUCTURE
  3738.  
  3739.       STRUCTURE /MENUITEMTEMPLATE/
  3740.      INTEGER*2 mtOption
  3741.      INTEGER*2 mtID
  3742.      CHARACTER mtString(1)
  3743.       END STRUCTURE
  3744.  
  3745.       INTEGER*2 MF_END
  3746.       PARAMETER (MF_END=#0080)
  3747.  
  3748. $ENDIF ! NOMENUS
  3749.  
  3750. $IF DEFINED(SYSCOMMANDS)
  3751.  
  3752. C
  3753. C System Menu Command Values
  3754. C
  3755.       INTEGER*2 SC_SIZE
  3756.       PARAMETER (SC_SIZE=       #F000)
  3757.       INTEGER*2 SC_MOVE
  3758.       PARAMETER (SC_MOVE=       #F010)
  3759.       INTEGER*2 SC_MINIMIZE
  3760.       PARAMETER (SC_MINIMIZE=   #F020)
  3761.       INTEGER*2 SC_MAXIMIZE
  3762.       PARAMETER (SC_MAXIMIZE=   #F030)
  3763.       INTEGER*2 SC_NEXTWINDOW
  3764.       PARAMETER (SC_NEXTWINDOW= #F040)
  3765.       INTEGER*2 SC_PREVWINDOW
  3766.       PARAMETER (SC_PREVWINDOW= #F050)
  3767.       INTEGER*2 SC_CLOSE
  3768.       PARAMETER (SC_CLOSE=      #F060)
  3769.       INTEGER*2 SC_VSCROLL
  3770.       PARAMETER (SC_VSCROLL=    #F070)
  3771.       INTEGER*2 SC_HSCROLL
  3772.       PARAMETER (SC_HSCROLL=    #F080)
  3773.       INTEGER*2 SC_MOUSEMENU
  3774.       PARAMETER (SC_MOUSEMENU=  #F090)
  3775.       INTEGER*2 SC_KEYMENU
  3776.       PARAMETER (SC_KEYMENU=    #F100)
  3777.       INTEGER*2 SC_ARRANGE
  3778.       PARAMETER (SC_ARRANGE=    #F110)
  3779.       INTEGER*2 SC_RESTORE
  3780.       PARAMETER (SC_RESTORE=    #F120)
  3781.       INTEGER*2 SC_TASKLIST
  3782.       PARAMETER (SC_TASKLIST=   #F130)
  3783.  
  3784.       INTEGER*2 SC_ICON
  3785.       PARAMETER (SC_ICON=SC_MINIMIZE)
  3786.       INTEGER*2 SC_ZOOM
  3787.       PARAMETER (SC_ZOOM=SC_MAXIMIZE)
  3788.  
  3789. $ENDIF ! NOSYSCOMMANDS
  3790.  
  3791. C
  3792. C Resource Loading Routines
  3793. C
  3794.       INTEGER*2 LoadBitmap [EXTERN]
  3795.       INTEGER*2 LoadCursor [EXTERN], LoadCursor_A [EXTERN]
  3796.       INTEGER*2 CreateCursor [EXTERN]
  3797.       INTEGER*2 DestroyCursor [EXTERN]
  3798.  
  3799. C
  3800. C Standard Cursor IDs
  3801. C
  3802. C The following were defined as follows :
  3803. C
  3804. C #define IDC_ARROW         MAKEINTRESOURCE(32512)
  3805. C
  3806.       INTEGER*4 IDC_ARROW
  3807.       PARAMETER (IDC_ARROW=32512)
  3808.       INTEGER*4 IDC_IBEAM
  3809.       PARAMETER (IDC_IBEAM=32513)
  3810.       INTEGER*4 IDC_WAIT
  3811.       PARAMETER (IDC_WAIT=32514)
  3812.       INTEGER*4 IDC_CROSS
  3813.       PARAMETER (IDC_CROSS=32515)
  3814.       INTEGER*4 IDC_UPARROW
  3815.       PARAMETER (IDC_UPARROW=32516)
  3816.       INTEGER*4 IDC_SIZE
  3817.       PARAMETER (IDC_SIZE=32640)
  3818.       INTEGER*4 IDC_ICON
  3819.       PARAMETER (IDC_ICON=32641)
  3820.       INTEGER*4 IDC_SIZENWSE
  3821.       PARAMETER (IDC_SIZENWSE=32642)
  3822.       INTEGER*4 IDC_SIZENESW
  3823.       PARAMETER (IDC_SIZENESW=32643)
  3824.       INTEGER*4 IDC_SIZEWE
  3825.       PARAMETER (IDC_SIZEWE=32644)
  3826.       INTEGER*4 IDC_SIZENS
  3827.       PARAMETER (IDC_SIZENS=32645)
  3828.  
  3829.       INTEGER*2 LoadIcon [EXTERN]
  3830.       INTEGER*2 CreateIcon [EXTERN]
  3831.       INTEGER*2 DestroyIcon [EXTERN]
  3832.  
  3833.       INTEGER*2 ORD_LANGDRIVER
  3834.       PARAMETER (ORD_LANGDRIVER=1) ! The ordinal number for the entry point of
  3835.                    ! language drivers.
  3836.  
  3837. $IF DEFINED(ICONS)
  3838. C
  3839. C Standard Icon IDs
  3840. C
  3841. C The following were defined as follows :
  3842. C
  3843. C #define IDI_APPLICATION     MAKEINTRESOURCE(32512)
  3844. C
  3845.       INTEGER*4 IDI_APPLICATION
  3846.       PARAMETER (IDI_APPLICATION=32512)
  3847.       INTEGER*4 IDI_HAND
  3848.       PARAMETER (IDI_HAND=32513)
  3849.       INTEGER*4 IDI_QUESTION
  3850.       PARAMETER (IDI_QUESTION=32514)
  3851.       INTEGER*4 IDI_EXCLAMATION
  3852.       PARAMETER (IDI_EXCLAMATION=32515)
  3853.       INTEGER*4 IDI_ASTERISK
  3854.       PARAMETER (IDI_ASTERISK=32516)
  3855.  
  3856. $ENDIF ! NOICONS
  3857.  
  3858.       INTEGER*2 LoadString [EXTERN]
  3859.       INTEGER*2 AddFontResource [EXTERN]
  3860.       INTEGER*2 RemoveFontResource [EXTERN]
  3861.  
  3862. $IF DEFINED(KANJI)
  3863.  
  3864.       INTEGER*2 CP_HWND
  3865.       PARAMETER (CP_HWND=           0)
  3866.       INTEGER*2 CP_OPEN
  3867.       PARAMETER (CP_OPEN=           1)
  3868.       INTEGER*2 CP_DIRECT
  3869.       PARAMETER (CP_DIRECT=         2)
  3870.  
  3871. C
  3872. C VK from the keyboard driver
  3873. C
  3874.       BYTE VK_KANA
  3875.       PARAMETER (VK_KANA=           #15)
  3876.       BYTE VK_ROMAJI
  3877.       PARAMETER (VK_ROMAJI=         #16)
  3878.       BYTE VK_ZENKAKU
  3879.       PARAMETER (VK_ZENKAKU=        #17)
  3880.       BYTE VK_HIRAGANA
  3881.       PARAMETER (VK_HIRAGANA=       #18)
  3882.       BYTE VK_KANJI
  3883.       PARAMETER (VK_KANJI=          #19)
  3884.  
  3885. C
  3886. C VK to send to Applications
  3887. C
  3888.       BYTE VK_CONVERT
  3889.       PARAMETER (VK_CONVERT=        #1C)
  3890.       BYTE VK_NONCONVERT
  3891.       PARAMETER (VK_NONCONVERT=     #1D)
  3892.       BYTE VK_ACCEPT
  3893.       PARAMETER (VK_ACCEPT=         #1E)
  3894.       BYTE VK_MODECHANGE
  3895.       PARAMETER (VK_MODECHANGE=     #1F)
  3896.  
  3897. C
  3898. C Conversion function numbers
  3899. C
  3900.       BYTE KNJ_START
  3901.       PARAMETER (KNJ_START=         #01)
  3902.       BYTE KNJ_END
  3903.       PARAMETER (KNJ_END=           #02)
  3904.       BYTE KNJ_QUERY
  3905.       PARAMETER (KNJ_QUERY=         #03)
  3906.  
  3907.       BYTE KNJ_LEARN_MODE
  3908.       PARAMETER (KNJ_LEARN_MODE=    #10)
  3909.       BYTE KNJ_GETMODE
  3910.       PARAMETER (KNJ_GETMODE=       #11)
  3911.       BYTE KNJ_SETMODE
  3912.       PARAMETER (KNJ_SETMODE=       #12)
  3913.  
  3914.       BYTE KNJ_CODECONVERT
  3915.       PARAMETER (KNJ_CODECONVERT=   #20)
  3916.       BYTE KNJ_CONVERT
  3917.       PARAMETER (KNJ_CONVERT=       #21)
  3918.       BYTE KNJ_NEXT
  3919.       PARAMETER (KNJ_NEXT=          #22)
  3920.       BYTE KNJ_PREVIOUS
  3921.       PARAMETER (KNJ_PREVIOUS=      #23)
  3922.       BYTE KNJ_ACCEPT
  3923.       PARAMETER (KNJ_ACCEPT=        #24)
  3924.  
  3925.       BYTE KNJ_LEARN
  3926.       PARAMETER (KNJ_LEARN=         #30)
  3927.       BYTE KNJ_REGISTER
  3928.       PARAMETER (KNJ_REGISTER=      #31)
  3929.       BYTE KNJ_REMOVE
  3930.       PARAMETER (KNJ_REMOVE=        #32)
  3931.       BYTE KNJ_CHANGE_UDIC
  3932.       PARAMETER (KNJ_CHANGE_UDIC=   #33)
  3933.  
  3934. C
  3935. C NOTE:  DEFAULT        = 0
  3936. C        JIS1           = 1
  3937. C        JIS2           = 2
  3938. C        SJIS2          = 3
  3939. C        JIS1KATAKANA   = 4
  3940. C        SJIS2HIRAGANA  = 5
  3941. C        SJIS2KATAKANA  = 6
  3942. C        OEM            = F
  3943. C
  3944.  
  3945.       BYTE KNJ_JIS1toJIS1KATAKANA
  3946.       PARAMETER (KNJ_JIS1toJIS1KATAKANA=#14)
  3947.       BYTE KNJ_JIS1toSJIS2
  3948.       PARAMETER (KNJ_JIS1toSJIS2=       #13)
  3949.       BYTE KNJ_JIS1toSJIS2HIRAGANA
  3950.       PARAMETER (KNJ_JIS1toSJIS2HIRAGANA=#15)
  3951.       BYTE KNJ_JIS1toSJIS2KATAKANA
  3952.       PARAMETER (KNJ_JIS1toSJIS2KATAKANA=#16)
  3953.       BYTE KNJ_JIS1toDEFAULT
  3954.       PARAMETER (KNJ_JIS1toDEFAULT=     #10)
  3955.       BYTE KNJ_JIS1toSJIS2OEM
  3956.       PARAMETER (KNJ_JIS1toSJIS2OEM=    #1F)
  3957.       BYTE KNJ_JIS2toSJIS2
  3958.       PARAMETER (KNJ_JIS2toSJIS2=       #23)
  3959.       BYTE KNJ_SJIS2toJIS2
  3960.       PARAMETER (KNJ_SJIS2toJIS2=       #32)
  3961.  
  3962.       BYTE KNJ_MD_ALPHA
  3963.       PARAMETER (KNJ_MD_ALPHA=          #01)
  3964.       BYTE KNJ_MD_HIRAGANA
  3965.       PARAMETER (KNJ_MD_HIRAGANA=       #02)
  3966.       BYTE KNJ_MD_HALF
  3967.       PARAMETER (KNJ_MD_HALF=           #04)
  3968.       BYTE KNJ_MD_JIS
  3969.       PARAMETER (KNJ_MD_JIS=            #08)
  3970.       BYTE KNJ_MD_SPECIAL
  3971.       PARAMETER (KNJ_MD_SPECIAL=        #10)
  3972.  
  3973.       BYTE KNJ_CVT_NEXT
  3974.       PARAMETER (KNJ_CVT_NEXT=          #01)
  3975.       BYTE KNJ_CVT_PREV
  3976.       PARAMETER (KNJ_CVT_PREV=          #02)
  3977.       BYTE KNJ_CVT_KATAKANA
  3978.       PARAMETER (KNJ_CVT_KATAKANA=      #03)
  3979.       BYTE KNJ_CVT_HIRAGANA
  3980.       PARAMETER (KNJ_CVT_HIRAGANA=      #04)
  3981.       BYTE KNJ_CVT_JIS1
  3982.       PARAMETER (KNJ_CVT_JIS1=          #05)
  3983.       BYTE KNJ_CVT_SJIS2
  3984.       PARAMETER (KNJ_CVT_SJIS2=         #06)
  3985.       BYTE KNJ_CVT_DEFAULT
  3986.       PARAMETER (KNJ_CVT_DEFAULT=       #07)
  3987.       BYTE KNJ_CVT_TYPED
  3988.       PARAMETER (KNJ_CVT_TYPED=         #08)
  3989.  
  3990.       STRUCTURE /KANJISTRUCT/
  3991.      INTEGER*2 fnc
  3992.      INTEGER*2 wParam
  3993.      INTEGER*4 lpSource ! LPSTR
  3994.      INTEGER*4 lpDest ! LPSTR
  3995.      INTEGER*2 wCount
  3996.      INTEGER*4 lpReserved1 ! LPSTR
  3997.      INTEGER*4 lpReserved2 ! LPSTR
  3998.       END STRUCTURE ! KANJISTRUCT, FAR *LPKANJISTRUCT;
  3999.  
  4000.       INTEGER*2 ConvertRequest [EXTERN]
  4001.       INTEGER*2 SetConvertParams [EXTERN]
  4002.  
  4003. $ENDIF
  4004.  
  4005. C
  4006. C Key Conversion Window
  4007. C
  4008.       INTEGER*2 IsTwoByteCharPrefix [EXTERN]
  4009.  
  4010. C
  4011. C Dialog Box Command IDs
  4012. C
  4013.       INTEGER*2 IDOK
  4014.       PARAMETER (IDOK=              1)
  4015.       INTEGER*2 IDCANCEL
  4016.       PARAMETER (IDCANCEL=          2)
  4017.       INTEGER*2 IDABORT
  4018.       PARAMETER (IDABORT=           3)
  4019.       INTEGER*2 IDRETRY
  4020.       PARAMETER (IDRETRY=           4)
  4021.       INTEGER*2 IDIGNORE
  4022.       PARAMETER (IDIGNORE=          5)
  4023.       INTEGER*2 IDYES
  4024.       PARAMETER (IDYES=             6)
  4025.       INTEGER*2 IDNO
  4026.       PARAMETER (IDNO=              7)
  4027.  
  4028. $IF DEFINED(CTLMGR)
  4029.  
  4030. C
  4031. C Control Manager Structures and Definitions
  4032. C
  4033.  
  4034. $IF DEFINED(WINSTYLES)
  4035.  
  4036. C
  4037. C Edit Control Styles
  4038. C
  4039.       INTEGER*4 ES_LEFT
  4040.       PARAMETER (ES_LEFT=             #0000)
  4041.       INTEGER*4 ES_CENTER
  4042.       PARAMETER (ES_CENTER=           #0001)
  4043.       INTEGER*4 ES_RIGHT
  4044.       PARAMETER (ES_RIGHT=            #0002)
  4045.       INTEGER*4 ES_MULTILINE
  4046.       PARAMETER (ES_MULTILINE=        #0004)
  4047.       INTEGER*4 ES_UPPERCASE
  4048.       PARAMETER (ES_UPPERCASE=        #0008)
  4049.       INTEGER*4 ES_LOWERCASE
  4050.       PARAMETER (ES_LOWERCASE=        #0010)
  4051.       INTEGER*4 ES_PASSWORD
  4052.       PARAMETER (ES_PASSWORD=         #0020)
  4053.       INTEGER*4 ES_AUTOVSCROLL
  4054.       PARAMETER (ES_AUTOVSCROLL=      #0040)
  4055.       INTEGER*4 ES_AUTOHSCROLL
  4056.       PARAMETER (ES_AUTOHSCROLL=      #0080)
  4057.       INTEGER*4 ES_NOHIDESEL
  4058.       PARAMETER (ES_NOHIDESEL=        #0100)
  4059.       INTEGER*4 ES_OEMCONVERT
  4060.       PARAMETER (ES_OEMCONVERT=       #0400)
  4061.  
  4062. $ENDIF ! NOWINSTYLES
  4063.  
  4064. C
  4065. C Edit Control Notification Codes
  4066. C
  4067.       INTEGER*2 EN_SETFOCUS
  4068.       PARAMETER (EN_SETFOCUS=       #0100)
  4069.       INTEGER*2 EN_KILLFOCUS
  4070.       PARAMETER (EN_KILLFOCUS=      #0200)
  4071.       INTEGER*2 EN_CHANGE
  4072.       PARAMETER (EN_CHANGE=         #0300)
  4073.       INTEGER*2 EN_UPDATE
  4074.       PARAMETER (EN_UPDATE=         #0400)
  4075.       INTEGER*2 EN_ERRSPACE
  4076.       PARAMETER (EN_ERRSPACE=       #0500)
  4077.       INTEGER*2 EN_MAXTEXT
  4078.       PARAMETER (EN_MAXTEXT=        #0501)
  4079.       INTEGER*2 EN_HSCROLL
  4080.       PARAMETER (EN_HSCROLL=        #0601)
  4081.       INTEGER*2 EN_VSCROLL
  4082.       PARAMETER (EN_VSCROLL=        #0602)
  4083.  
  4084. $IF DEFINED(WINMESSAGES)
  4085.  
  4086. C
  4087. C Edit Control Messages
  4088. C
  4089.       INTEGER*2 EM_GETSEL
  4090.       PARAMETER (EM_GETSEL=         WM_USER+0)
  4091.       INTEGER*2 EM_SETSEL
  4092.       PARAMETER (EM_SETSEL=         WM_USER+1)
  4093.       INTEGER*2 EM_GETRECT
  4094.       PARAMETER (EM_GETRECT=        WM_USER+2)
  4095.       INTEGER*2 EM_SETRECT
  4096.       PARAMETER (EM_SETRECT=        WM_USER+3)
  4097.       INTEGER*2 EM_SETRECTNP
  4098.       PARAMETER (EM_SETRECTNP=      WM_USER+4)
  4099.       INTEGER*2 EM_SCROLL
  4100.       PARAMETER (EM_SCROLL=         WM_USER+5)
  4101.       INTEGER*2 EM_LINESCROLL
  4102.       PARAMETER (EM_LINESCROLL=     WM_USER+6)
  4103.       INTEGER*2 EM_GETMODIFY
  4104.       PARAMETER (EM_GETMODIFY=      WM_USER+8)
  4105.       INTEGER*2 EM_SETMODIFY
  4106.       PARAMETER (EM_SETMODIFY=      WM_USER+9)
  4107.       INTEGER*2 EM_GETLINECOUNT
  4108.       PARAMETER (EM_GETLINECOUNT=   WM_USER+10)
  4109.       INTEGER*2 EM_LINEINDEX
  4110.       PARAMETER (EM_LINEINDEX=      WM_USER+11)
  4111.       INTEGER*2 EM_SETHANDLE
  4112.       PARAMETER (EM_SETHANDLE=      WM_USER+12)
  4113.       INTEGER*2 EM_GETHANDLE
  4114.       PARAMETER (EM_GETHANDLE=      WM_USER+13)
  4115.       INTEGER*2 EM_GETTHUMB
  4116.       PARAMETER (EM_GETTHUMB=       WM_USER+14)
  4117.       INTEGER*2 EM_LINELENGTH
  4118.       PARAMETER (EM_LINELENGTH=     WM_USER+17)
  4119.       INTEGER*2 EM_REPLACESEL
  4120.       PARAMETER (EM_REPLACESEL=     WM_USER+18)
  4121.       INTEGER*2 EM_SETFONT
  4122.       PARAMETER (EM_SETFONT=        WM_USER+19)
  4123.       INTEGER*2 EM_GETLINE
  4124.       PARAMETER (EM_GETLINE=        WM_USER+20)
  4125.       INTEGER*2 EM_LIMITTEXT
  4126.       PARAMETER (EM_LIMITTEXT=      WM_USER+21)
  4127.       INTEGER*2 EM_CANUNDO
  4128.       PARAMETER (EM_CANUNDO=        WM_USER+22)
  4129.       INTEGER*2 EM_UNDO
  4130.       PARAMETER (EM_UNDO=           WM_USER+23)
  4131.       INTEGER*2 EM_FMTLINES
  4132.       PARAMETER (EM_FMTLINES=       WM_USER+24)
  4133.       INTEGER*2 EM_LINEFROMCHAR
  4134.       PARAMETER (EM_LINEFROMCHAR=   WM_USER+25)
  4135.       INTEGER*2 EM_SETWORDBREAK
  4136.       PARAMETER (EM_SETWORDBREAK=   WM_USER+26)
  4137.       INTEGER*2 EM_SETTABSTOPS
  4138.       PARAMETER (EM_SETTABSTOPS=    WM_USER+27)
  4139.       INTEGER*2 EM_SETPASSWORDCHAR
  4140.       PARAMETER (EM_SETPASSWORDCHAR=WM_USER+28)
  4141.       INTEGER*2 EM_EMPTYUNDOBUFFER
  4142.       PARAMETER (EM_EMPTYUNDOBUFFER=WM_USER+29)
  4143.       INTEGER*2 EM_MSGMAX
  4144.       PARAMETER (EM_MSGMAX=         WM_USER+30)
  4145.  
  4146. $ENDIF ! NOWINMESSAGES
  4147.  
  4148. C
  4149. C Button Control Styles
  4150. C
  4151.       INTEGER*4 BS_PUSHBUTTON
  4152.       PARAMETER (BS_PUSHBUTTON=    #00)
  4153.       INTEGER*4 BS_DEFPUSHBUTTON
  4154.       PARAMETER (BS_DEFPUSHBUTTON= #01)
  4155.       INTEGER*4 BS_CHECKBOX
  4156.       PARAMETER (BS_CHECKBOX=      #02)
  4157.       INTEGER*4 BS_AUTOCHECKBOX
  4158.       PARAMETER (BS_AUTOCHECKBOX=  #03)
  4159.       INTEGER*4 BS_RADIOBUTTON
  4160.       PARAMETER (BS_RADIOBUTTON=   #04)
  4161.       INTEGER*4 BS_3STATE
  4162.       PARAMETER (BS_3STATE=        #05)
  4163.       INTEGER*4 BS_AUTO3STATE
  4164.       PARAMETER (BS_AUTO3STATE=    #06)
  4165.       INTEGER*4 BS_GROUPBOX
  4166.       PARAMETER (BS_GROUPBOX=      #07)
  4167.       INTEGER*4 BS_USERBUTTON
  4168.       PARAMETER (BS_USERBUTTON=    #08)
  4169.       INTEGER*4 BS_AUTORADIOBUTTON
  4170.       PARAMETER (BS_AUTORADIOBUTTON=#09)
  4171.       INTEGER*4 BS_PUSHBOX
  4172.       PARAMETER (BS_PUSHBOX=       #0A)
  4173.       INTEGER*4 BS_OWNERDRAW
  4174.       PARAMETER (BS_OWNERDRAW=     #0B)
  4175.       INTEGER*4 BS_LEFTTEXT
  4176.       PARAMETER (BS_LEFTTEXT=      #20)
  4177.  
  4178. C
  4179. C User Button Notification Codes
  4180. C
  4181.       INTEGER*2 BN_CLICKED
  4182.       PARAMETER (BN_CLICKED=       0)
  4183.       INTEGER*2 BN_PAINT
  4184.       PARAMETER (BN_PAINT=         1)
  4185.       INTEGER*2 BN_HILITE
  4186.       PARAMETER (BN_HILITE=        2)
  4187.       INTEGER*2 BN_UNHILITE
  4188.       PARAMETER (BN_UNHILITE=      3)
  4189.       INTEGER*2 BN_DISABLE
  4190.       PARAMETER (BN_DISABLE=       4)
  4191.       INTEGER*2 BN_DOUBLECLICKED
  4192.       PARAMETER (BN_DOUBLECLICKED=  5)
  4193.  
  4194. C
  4195. C Button Control Messages
  4196. C
  4197.       INTEGER*2 BM_GETCHECK
  4198.       PARAMETER (BM_GETCHECK=      WM_USER+0)
  4199.       INTEGER*2 BM_SETCHECK
  4200.       PARAMETER (BM_SETCHECK=      WM_USER+1)
  4201.       INTEGER*2 BM_GETSTATE
  4202.       PARAMETER (BM_GETSTATE=      WM_USER+2)
  4203.       INTEGER*2 BM_SETSTATE
  4204.       PARAMETER (BM_SETSTATE=      WM_USER+3)
  4205.       INTEGER*2 BM_SETSTYLE
  4206.       PARAMETER (BM_SETSTYLE=      WM_USER+4)
  4207.  
  4208. C
  4209. C Static Control Constants
  4210. C
  4211.       INTEGER*4 SS_LEFT
  4212.       PARAMETER (SS_LEFT=          #00)
  4213.       INTEGER*4 SS_CENTER
  4214.       PARAMETER (SS_CENTER=        #01)
  4215.       INTEGER*4 SS_RIGHT
  4216.       PARAMETER (SS_RIGHT=         #02)
  4217.       INTEGER*4 SS_ICON
  4218.       PARAMETER (SS_ICON=          #03)
  4219.       INTEGER*4 SS_BLACKRECT
  4220.       PARAMETER (SS_BLACKRECT=     #04)
  4221.       INTEGER*4 SS_GRAYRECT
  4222.       PARAMETER (SS_GRAYRECT=      #05)
  4223.       INTEGER*4 SS_WHITERECT
  4224.       PARAMETER (SS_WHITERECT=     #06)
  4225.       INTEGER*4 SS_BLACKFRAME
  4226.       PARAMETER (SS_BLACKFRAME=    #07)
  4227.       INTEGER*4 SS_GRAYFRAME
  4228.       PARAMETER (SS_GRAYFRAME=     #08)
  4229.       INTEGER*4 SS_WHITEFRAME
  4230.       PARAMETER (SS_WHITEFRAME=    #09)
  4231.       INTEGER*4 SS_USERITEM
  4232.       PARAMETER (SS_USERITEM=      #0A)
  4233.       INTEGER*4 SS_SIMPLE
  4234.       PARAMETER (SS_SIMPLE=        #0B)
  4235.       INTEGER*4 SS_LEFTNOWORDWRAP
  4236.       PARAMETER (SS_LEFTNOWORDWRAP=#0C)
  4237.       INTEGER*4 SS_NOPREFIX
  4238.       PARAMETER (SS_NOPREFIX=      #80)  ! Don't do "&" character translation
  4239.  
  4240. $IF DEFINED(MSG)
  4241.       INTEGER*2 IsDialogMessage [EXTERN]
  4242. $ENDIF
  4243.  
  4244.       INTEGER*2 DlgDirList [EXTERN]
  4245.       INTEGER*2 DlgDirSelect [EXTERN]
  4246.       INTEGER*2 DlgDirListComboBox [EXTERN]
  4247.       INTEGER*2 DlgDirSelectComboBox [EXTERN]
  4248. C
  4249. C Dialog Styles
  4250. C
  4251.       INTEGER*4 DS_ABSALIGN
  4252.       PARAMETER (DS_ABSALIGN=       #01)
  4253.       INTEGER*4 DS_SYSMODAL
  4254.       PARAMETER (DS_SYSMODAL=       #02)
  4255.       INTEGER*4 DS_LOCALEDIT
  4256.       PARAMETER (DS_LOCALEDIT=      #20)  ! Edit items get Local storage.
  4257.       INTEGER*4 DS_SETFONT
  4258.       PARAMETER (DS_SETFONT=        #40)  ! User specified font for Dlg controls
  4259.       INTEGER*4 DS_MODALFRAME
  4260.       PARAMETER (DS_MODALFRAME=     #80)   ! Can be combined with WS_CAPTION
  4261.       INTEGER*4 DS_NOIDLEMSG
  4262.       PARAMETER (DS_NOIDLEMSG=      #100) ! WM_ENTERIDLE message will not be sent
  4263.  
  4264.       INTEGER*2 DM_GETDEFID
  4265.       PARAMETER (DM_GETDEFID=       WM_USER+0)
  4266.       INTEGER*2 DM_SETDEFID
  4267.       PARAMETER (DM_SETDEFID=       WM_USER+1)
  4268.       INTEGER*2 DC_HASDEFID
  4269.       PARAMETER (DC_HASDEFID=       #534B)
  4270.  
  4271. C
  4272. C Dialog Codes
  4273. C
  4274.       INTEGER*2 DLGC_WANTARROWS
  4275.       PARAMETER (DLGC_WANTARROWS=   #0001)      ! Control wants arrow keys
  4276.       INTEGER*2 DLGC_WANTTAB
  4277.       PARAMETER (DLGC_WANTTAB=      #0002)      ! Control wants tab keys
  4278.       INTEGER*2 DLGC_WANTALLKEYS
  4279.       PARAMETER (DLGC_WANTALLKEYS=  #0004)      ! Control wants all keys
  4280.       INTEGER*2 DLGC_WANTMESSAGE
  4281.       PARAMETER (DLGC_WANTMESSAGE=  #0004)      ! Pass message to control
  4282.       INTEGER*2 DLGC_HASSETSEL
  4283.       PARAMETER (DLGC_HASSETSEL=    #0008)      ! Understands EM_SETSEL message
  4284.       INTEGER*2 DLGC_DEFPUSHBUTTON
  4285.       PARAMETER (DLGC_DEFPUSHBUTTON=#0010)      ! Default pushbutton
  4286.       INTEGER*2 DLGC_UNDEFPUSHBUTTON
  4287.       PARAMETER (DLGC_UNDEFPUSHBUTTON=#0020)    ! Non-default pushbutton
  4288.       INTEGER*2 DLGC_RADIOBUTTON
  4289.       PARAMETER (DLGC_RADIOBUTTON=  #0040)      ! Radio button
  4290.       INTEGER*2 DLGC_WANTCHARS
  4291.       PARAMETER (DLGC_WANTCHARS=    #0080)      ! Want WM_CHAR messages
  4292.       INTEGER*2 DLGC_STATIC
  4293.       PARAMETER (DLGC_STATIC=       #0100)      ! Static item: don't include
  4294.       INTEGER*2 DLGC_BUTTON
  4295.       PARAMETER (DLGC_BUTTON=       #2000)      ! Button item: can be checked
  4296.  
  4297.       INTEGER*4 LB_CTLCODE
  4298.       PARAMETER (LB_CTLCODE=        0)
  4299.  
  4300. C
  4301. C Listbox Return Values
  4302. C
  4303.       INTEGER*2 LB_OKAY
  4304.       PARAMETER (LB_OKAY=           0)
  4305.       INTEGER*2 LB_ERR
  4306.       PARAMETER (LB_ERR=           -1)
  4307.       INTEGER*2 LB_ERRSPACE
  4308.       PARAMETER (LB_ERRSPACE=      -2)
  4309.  
  4310. C
  4311. C  The idStaticPath parameter to DlgDirList can have the following values
  4312. C  ORed if the list box should show other details of the files along with
  4313. C  the name of the files;
  4314. C
  4315. C                                 all other details also will be returned
  4316. C
  4317.  
  4318. C
  4319. C Listbox Notification Codes
  4320. C
  4321.       INTEGER*2 LBN_ERRSPACE
  4322.       PARAMETER (LBN_ERRSPACE=     -2)
  4323.       INTEGER*2 LBN_SELCHANGE
  4324.       PARAMETER (LBN_SELCHANGE=     1)
  4325.       INTEGER*2 LBN_DBLCLK
  4326.       PARAMETER (LBN_DBLCLK=        2)
  4327.       INTEGER*2 LBN_SELCANCEL
  4328.       PARAMETER (LBN_SELCANCEL=     3)
  4329.       INTEGER*2 LBN_SETFOCUS
  4330.       PARAMETER (LBN_SETFOCUS=      4)
  4331.       INTEGER*2 LBN_KILLFOCUS
  4332.       PARAMETER (LBN_KILLFOCUS=     5)
  4333.  
  4334. $IF DEFINED(WINMESSAGES)
  4335.  
  4336. C
  4337. C Listbox messages
  4338. C
  4339.       INTEGER*2 LB_ADDSTRING
  4340.       PARAMETER (LB_ADDSTRING=         WM_USER+1)
  4341.       INTEGER*2 LB_INSERTSTRING
  4342.       PARAMETER (LB_INSERTSTRING=      WM_USER+2)
  4343.       INTEGER*2 LB_DELETESTRING
  4344.       PARAMETER (LB_DELETESTRING=      WM_USER+3)
  4345.       INTEGER*2 LB_RESETCONTENT
  4346.       PARAMETER (LB_RESETCONTENT=      WM_USER+5)
  4347.       INTEGER*2 LB_SETSEL
  4348.       PARAMETER (LB_SETSEL=            WM_USER+6)
  4349.       INTEGER*2 LB_SETCURSEL
  4350.       PARAMETER (LB_SETCURSEL=         WM_USER+7)
  4351.       INTEGER*2 LB_GETSEL
  4352.       PARAMETER (LB_GETSEL=            WM_USER+8)
  4353.       INTEGER*2 LB_GETCURSEL
  4354.       PARAMETER (LB_GETCURSEL=         WM_USER+9)
  4355.       INTEGER*2 LB_GETTEXT
  4356.       PARAMETER (LB_GETTEXT=           WM_USER+10)
  4357.       INTEGER*2 LB_GETTEXTLEN
  4358.       PARAMETER (LB_GETTEXTLEN=        WM_USER+11)
  4359.       INTEGER*2 LB_GETCOUNT
  4360.       PARAMETER (LB_GETCOUNT=          WM_USER+12)
  4361.       INTEGER*2 LB_SELECTSTRING
  4362.       PARAMETER (LB_SELECTSTRING=      WM_USER+13)
  4363.       INTEGER*2 LB_DIR
  4364.       PARAMETER (LB_DIR=               WM_USER+14)
  4365.       INTEGER*2 LB_GETTOPINDEX
  4366.       PARAMETER (LB_GETTOPINDEX=       WM_USER+15)
  4367.       INTEGER*2 LB_FINDSTRING
  4368.       PARAMETER (LB_FINDSTRING=        WM_USER+16)
  4369.       INTEGER*2 LB_GETSELCOUNT
  4370.       PARAMETER (LB_GETSELCOUNT=       WM_USER+17)
  4371.       INTEGER*2 LB_GETSELITEMS
  4372.       PARAMETER (LB_GETSELITEMS=       WM_USER+18)
  4373.       INTEGER*2 LB_SETTABSTOPS
  4374.       PARAMETER (LB_SETTABSTOPS=       WM_USER+19)
  4375.       INTEGER*2 LB_GETHORIZONTALEXTENT
  4376.       PARAMETER (LB_GETHORIZONTALEXTENT=WM_USER+20)
  4377.       INTEGER*2 LB_SETHORIZONTALEXTENT
  4378.       PARAMETER (LB_SETHORIZONTALEXTENT=WM_USER+21)
  4379.       INTEGER*2 LB_SETCOLUMNWIDTH
  4380.       PARAMETER (LB_SETCOLUMNWIDTH=    WM_USER+22)
  4381.       INTEGER*2 LB_SETTOPINDEX
  4382.       PARAMETER (LB_SETTOPINDEX=       WM_USER+24)
  4383.       INTEGER*2 LB_GETITEMRECT
  4384.       PARAMETER (LB_GETITEMRECT=       WM_USER+25)
  4385.       INTEGER*2 LB_GETITEMDATA
  4386.       PARAMETER (LB_GETITEMDATA=       WM_USER+26)
  4387.       INTEGER*2 LB_SETITEMDATA
  4388.       PARAMETER (LB_SETITEMDATA=       WM_USER+27)
  4389.       INTEGER*2 LB_SELITEMRANGE
  4390.       PARAMETER (LB_SELITEMRANGE=      WM_USER+28)
  4391.       INTEGER*2 LB_MSGMAX
  4392.       PARAMETER (LB_MSGMAX=            WM_USER+33)
  4393.  
  4394. $ENDIF ! NOWINMESSAGES
  4395.  
  4396. $IF DEFINED(WINSTYLES)
  4397.  
  4398. C
  4399. C Listbox Styles
  4400. C
  4401.       INTEGER*4 LBS_NOTIFY
  4402.       PARAMETER (LBS_NOTIFY=           #0001)
  4403.       INTEGER*4 LBS_SORT
  4404.       PARAMETER (LBS_SORT=             #0002)
  4405.       INTEGER*4 LBS_NOREDRAW
  4406.       PARAMETER (LBS_NOREDRAW=         #0004)
  4407.       INTEGER*4 LBS_MULTIPLESEL
  4408.       PARAMETER (LBS_MULTIPLESEL=      #0008)
  4409.       INTEGER*4 LBS_OWNERDRAWFIXED
  4410.       PARAMETER (LBS_OWNERDRAWFIXED=   #0010)
  4411.       INTEGER*4 LBS_OWNERDRAWVARIABLE
  4412.       PARAMETER (LBS_OWNERDRAWVARIABLE=#0020)
  4413.       INTEGER*4 LBS_HASSTRINGS
  4414.       PARAMETER (LBS_HASSTRINGS=       #0040)
  4415.       INTEGER*4 LBS_USETABSTOPS
  4416.       PARAMETER (LBS_USETABSTOPS=      #0080)
  4417.       INTEGER*4 LBS_NOINTEGRALHEIGHT
  4418.       PARAMETER (LBS_NOINTEGRALHEIGHT= #0100)
  4419.       INTEGER*4 LBS_MULTICOLUMN
  4420.       PARAMETER (LBS_MULTICOLUMN=      #0200)
  4421.       INTEGER*4 LBS_WANTKEYBOARDINPUT
  4422.       PARAMETER (LBS_WANTKEYBOARDINPUT=#0400)
  4423.       INTEGER*4 LBS_EXTENDEDSEL
  4424.       PARAMETER (LBS_EXTENDEDSEL=      #0800)
  4425.       INTEGER*4 LBS_STANDARD
  4426.       PARAMETER (LBS_STANDARD=LBS_NOTIFY.OR.LBS_SORT.OR.WS_VSCROLL.OR.
  4427.      *                                                        WS_BORDER)
  4428.  
  4429. $ENDIF ! NOWINSTYLES
  4430.  
  4431. C
  4432. C Combo Box return Values
  4433. C
  4434.       INTEGER*2 CB_OKAY
  4435.       PARAMETER (CB_OKAY=         0)
  4436.       INTEGER*2 CB_ERR
  4437.       PARAMETER (CB_ERR=         -1)
  4438.       INTEGER*2 CB_ERRSPACE
  4439.       PARAMETER (CB_ERRSPACE=    -2)
  4440.  
  4441. C
  4442. C Combo Box Notification Codes
  4443. C
  4444.       INTEGER*2 CBN_ERRSPACE
  4445.       PARAMETER (CBN_ERRSPACE=     -1)
  4446.       INTEGER*2 CBN_SELCHANGE
  4447.       PARAMETER (CBN_SELCHANGE=     1)
  4448.       INTEGER*2 CBN_DBLCLK
  4449.       PARAMETER (CBN_DBLCLK=        2)
  4450.       INTEGER*2 CBN_SETFOCUS
  4451.       PARAMETER (CBN_SETFOCUS=      3)
  4452.       INTEGER*2 CBN_KILLFOCUS
  4453.       PARAMETER (CBN_KILLFOCUS=     4)
  4454.       INTEGER*2 CBN_EDITCHANGE
  4455.       PARAMETER (CBN_EDITCHANGE=    5)
  4456.       INTEGER*2 CBN_EDITUPDATE
  4457.       PARAMETER (CBN_EDITUPDATE=    6)
  4458.       INTEGER*2 CBN_DROPDOWN
  4459.       PARAMETER (CBN_DROPDOWN=      7)
  4460.  
  4461. C
  4462. C Combo Box styles
  4463. C
  4464. $IF DEFINED(WINSTYLES)
  4465.  
  4466.       INTEGER*4 CBS_SIMPLE
  4467.       PARAMETER (CBS_SIMPLE=          #0001)
  4468.       INTEGER*4 CBS_DROPDOWN
  4469.       PARAMETER (CBS_DROPDOWN=        #0002)
  4470.       INTEGER*4 CBS_DROPDOWNLIST
  4471.       PARAMETER (CBS_DROPDOWNLIST=    #0003)
  4472.       INTEGER*4 CBS_OWNERDRAWFIXED
  4473.       PARAMETER (CBS_OWNERDRAWFIXED=  #0010)
  4474.       INTEGER*4 CBS_OWNERDRAWVARIABLE
  4475.       PARAMETER (CBS_OWNERDRAWVARIABLE=#0020)
  4476.       INTEGER*4 CBS_AUTOHSCROLL
  4477.       PARAMETER (CBS_AUTOHSCROLL=     #0040)
  4478.       INTEGER*4 CBS_OEMCONVERT
  4479.       PARAMETER (CBS_OEMCONVERT=      #0080)
  4480.       INTEGER*4 CBS_SORT
  4481.       PARAMETER (CBS_SORT=            #0100)
  4482.       INTEGER*4 CBS_HASSTRINGS
  4483.       PARAMETER (CBS_HASSTRINGS=      #0200)
  4484.       INTEGER*4 CBS_NOINTEGRALHEIGHT
  4485.       PARAMETER (CBS_NOINTEGRALHEIGHT=#0400)
  4486.  
  4487. $ENDIF ! NOWINSTYLES
  4488.  
  4489. C
  4490. C Combo Box messages
  4491. C
  4492. $IF DEFINED(WINMESSAGES)
  4493.  
  4494.       INTEGER*2 CB_GETEDITSEL
  4495.       PARAMETER (CB_GETEDITSEL=           WM_USER+0)
  4496.       INTEGER*2 CB_LIMITTEXT
  4497.       PARAMETER (CB_LIMITTEXT=            WM_USER+1)
  4498.       INTEGER*2 CB_SETEDITSEL
  4499.       PARAMETER (CB_SETEDITSEL=           WM_USER+2)
  4500.       INTEGER*2 CB_ADDSTRING
  4501.       PARAMETER (CB_ADDSTRING=            WM_USER+3)
  4502.       INTEGER*2 CB_DELETESTRING
  4503.       PARAMETER (CB_DELETESTRING=         WM_USER+4)
  4504.       INTEGER*2 CB_DIR
  4505.       PARAMETER (CB_DIR=                  WM_USER+5)
  4506.       INTEGER*2 CB_GETCOUNT
  4507.       PARAMETER (CB_GETCOUNT=             WM_USER+6)
  4508.       INTEGER*2 CB_GETCURSEL
  4509.       PARAMETER (CB_GETCURSEL=            WM_USER+7)
  4510.       INTEGER*2 CB_GETLBTEXT
  4511.       PARAMETER (CB_GETLBTEXT=            WM_USER+8)
  4512.       INTEGER*2 CB_GETLBTEXTLEN
  4513.       PARAMETER (CB_GETLBTEXTLEN=         WM_USER+9)
  4514.       INTEGER*2 CB_INSERTSTRING
  4515.       PARAMETER (CB_INSERTSTRING=         WM_USER+10)
  4516.       INTEGER*2 CB_RESETCONTENT
  4517.       PARAMETER (CB_RESETCONTENT=         WM_USER+11)
  4518.       INTEGER*2 CB_FINDSTRING
  4519.       PARAMETER (CB_FINDSTRING=           WM_USER+12)
  4520.       INTEGER*2 CB_SELECTSTRING
  4521.       PARAMETER (CB_SELECTSTRING=         WM_USER+13)
  4522.       INTEGER*2 CB_SETCURSEL
  4523.       PARAMETER (CB_SETCURSEL=            WM_USER+14)
  4524.       INTEGER*2 CB_SHOWDROPDOWN
  4525.       PARAMETER (CB_SHOWDROPDOWN=         WM_USER+15)
  4526.       INTEGER*2 CB_GETITEMDATA
  4527.       PARAMETER (CB_GETITEMDATA=          WM_USER+16)
  4528.       INTEGER*2 CB_SETITEMDATA
  4529.       PARAMETER (CB_SETITEMDATA=          WM_USER+17)
  4530.       INTEGER*2 CB_GETDROPPEDCONTROLRECT
  4531.       PARAMETER (CB_GETDROPPEDCONTROLRECT=WM_USER+18)
  4532.       INTEGER*2 CB_MSGMAX
  4533.       PARAMETER (CB_MSGMAX=               WM_USER+19)
  4534.  
  4535. $ENDIF ! NOWINMESSAGES
  4536.  
  4537. $IF DEFINED(WINSTYLES)
  4538.  
  4539. C
  4540. C Scroll Bar Styles
  4541. C
  4542.       INTEGER*4 SBS_HORZ
  4543.       PARAMETER (SBS_HORZ=                  #0000)
  4544.       INTEGER*4 SBS_VERT
  4545.       PARAMETER (SBS_VERT=                  #0001)
  4546.       INTEGER*4 SBS_TOPALIGN
  4547.       PARAMETER (SBS_TOPALIGN=              #0002)
  4548.       INTEGER*4 SBS_LEFTALIGN
  4549.       PARAMETER (SBS_LEFTALIGN=             #0002)
  4550.       INTEGER*4 SBS_BOTTOMALIGN
  4551.       PARAMETER (SBS_BOTTOMALIGN=           #0004)
  4552.       INTEGER*4 SBS_RIGHTALIGN
  4553.       PARAMETER (SBS_RIGHTALIGN=            #0004)
  4554.       INTEGER*4 SBS_SIZEBOXTOPLEFTALIGN
  4555.       PARAMETER (SBS_SIZEBOXTOPLEFTALIGN=   #0002)
  4556.       INTEGER*4 SBS_SIZEBOXBOTTOMRIGHTALIGN
  4557.       PARAMETER (SBS_SIZEBOXBOTTOMRIGHTALIGN=#0004)
  4558.       INTEGER*4 SBS_SIZEBOX
  4559.       PARAMETER (SBS_SIZEBOX=               #0008)
  4560.  
  4561. $ENDIF ! NOWINSTYLES
  4562.  
  4563. $ENDIF ! NOCTLMGR
  4564.  
  4565. $IF DEFINED(SOUND)
  4566.  
  4567.       INTEGER*2 OpenSound [EXTERN]
  4568.       INTEGER*2 SetVoiceQueueSize [EXTERN]
  4569.       INTEGER*2 SetVoiceNote [EXTERN]
  4570.       INTEGER*2 SetVoiceAccent [EXTERN]
  4571.       INTEGER*2 SetVoiceEnvelope [EXTERN]
  4572.       INTEGER*2 SetSoundNoise [EXTERN]
  4573.       INTEGER*2 SetVoiceSound [EXTERN]
  4574.       INTEGER*2 StartSound [EXTERN]
  4575.       INTEGER*2 StopSound [EXTERN]
  4576.       INTEGER*2 WaitSoundState [EXTERN]
  4577.       INTEGER*2 SyncAllVoices [EXTERN]
  4578.       INTEGER*2 CountVoiceNotes [EXTERN]
  4579.       INTEGER*4 GetThresholdEvent [EXTERN]
  4580.       INTEGER*2 GetThresholdStatus [EXTERN]
  4581.       INTEGER*2 SetVoiceThreshold [EXTERN]
  4582.  
  4583. C
  4584. C WaitSoundState() Constants
  4585. C
  4586.       INTEGER*2 S_QUEUEEMPTY
  4587.       PARAMETER (S_QUEUEEMPTY=      0)
  4588.       INTEGER*2 S_THRESHOLD
  4589.       PARAMETER (S_THRESHOLD=       1)
  4590.       INTEGER*2 S_ALLTHRESHOLD
  4591.       PARAMETER (S_ALLTHRESHOLD=    2)
  4592.  
  4593. C
  4594. C Accent Modes
  4595. C
  4596.       INTEGER*2 S_NORMAL
  4597.       PARAMETER (S_NORMAL=     0)
  4598.       INTEGER*2 S_LEGATO
  4599.       PARAMETER (S_LEGATO=     1)
  4600.       INTEGER*2 S_STACCATO
  4601.       PARAMETER (S_STACCATO=   2)
  4602.  
  4603. C
  4604. C SetSoundNoise() Sources
  4605. C
  4606.       INTEGER*2 S_PERIOD512
  4607.       PARAMETER (S_PERIOD512=  0)     ! Freq = N/512 high pitch, less coarse hiss
  4608.       INTEGER*2 S_PERIOD1024
  4609.       PARAMETER (S_PERIOD1024= 1)     ! Freq = N/1024
  4610.       INTEGER*2 S_PERIOD2048
  4611.       PARAMETER (S_PERIOD2048= 2)     ! Freq = N/2048 low pitch, more coarse hiss
  4612.       INTEGER*2 S_PERIODVOICE
  4613.       PARAMETER (S_PERIODVOICE=3)     ! Source is frequency from voice channel (3)
  4614.       INTEGER*2 S_WHITE512
  4615.       PARAMETER (S_WHITE512=   4)     ! Freq = N/512 high pitch, less coarse hiss
  4616.       INTEGER*2 S_WHITE1024
  4617.       PARAMETER (S_WHITE1024=  5)     ! Freq = N/1024
  4618.       INTEGER*2 S_WHITE2048
  4619.       PARAMETER (S_WHITE2048=  6)     ! Freq = N/2048 low pitch, more coarse hiss
  4620.       INTEGER*2 S_WHITEVOICE
  4621.       PARAMETER (S_WHITEVOICE= 7)     ! Source is frequency from voice channel (3)
  4622.  
  4623.       INTEGER*2 S_SERDVNA
  4624.       PARAMETER (S_SERDVNA=   -1)  ! Device not available
  4625.       INTEGER*2 S_SEROFM
  4626.       PARAMETER (S_SEROFM=    -2)  ! Out of memory
  4627.       INTEGER*2 S_SERMACT
  4628.       PARAMETER (S_SERMACT=   -3)  ! Music active
  4629.       INTEGER*2 S_SERQFUL
  4630.       PARAMETER (S_SERQFUL=   -4)  ! Queue full
  4631.       INTEGER*2 S_SERBDNT
  4632.       PARAMETER (S_SERBDNT=   -5)  ! Invalid note
  4633.       INTEGER*2 S_SERDLN
  4634.       PARAMETER (S_SERDLN=    -6)  ! Invalid note length
  4635.       INTEGER*2 S_SERDCC
  4636.       PARAMETER (S_SERDCC=    -7)  ! Invalid note count
  4637.       INTEGER*2 S_SERDTP
  4638.       PARAMETER (S_SERDTP=    -8)  ! Invalid tempo
  4639.       INTEGER*2 S_SERDVL
  4640.       PARAMETER (S_SERDVL=    -9)  ! Invalid volume
  4641.       INTEGER*2 S_SERDMD
  4642.       PARAMETER (S_SERDMD=    -10) ! Invalid mode
  4643.       INTEGER*2 S_SERDSH
  4644.       PARAMETER (S_SERDSH=    -11) ! Invalid shape
  4645.       INTEGER*2 S_SERDPT
  4646.       PARAMETER (S_SERDPT=    -12) ! Invalid pitch
  4647.       INTEGER*2 S_SERDFQ
  4648.       PARAMETER (S_SERDFQ=    -13) ! Invalid frequency
  4649.       INTEGER*2 S_SERDDR
  4650.       PARAMETER (S_SERDDR=    -14) ! Invalid duration
  4651.       INTEGER*2 S_SERDSR
  4652.       PARAMETER (S_SERDSR=    -15) ! Invalid source
  4653.       INTEGER*2 S_SERDST
  4654.       PARAMETER (S_SERDST=    -16) ! Invalid state
  4655.  
  4656. $ENDIF ! NOSOUND
  4657.  
  4658. $IF DEFINED(COMM)
  4659.  
  4660.       INTEGER*2 NOPARITY
  4661.       PARAMETER (NOPARITY=          0)
  4662.       INTEGER*2 ODDPARITY
  4663.       PARAMETER (ODDPARITY=         1)
  4664.       INTEGER*2 EVENPARITY
  4665.       PARAMETER (EVENPARITY=        2)
  4666.       INTEGER*2 MARKPARITY
  4667.       PARAMETER (MARKPARITY=        3)
  4668.       INTEGER*2 SPACEPARITY
  4669.       PARAMETER (SPACEPARITY=       4)
  4670.  
  4671.       INTEGER*2 ONESTOPBIT
  4672.       PARAMETER (ONESTOPBIT=        0)
  4673.       INTEGER*2 ONE5STOPBITS
  4674.       PARAMETER (ONE5STOPBITS=      1)
  4675.       INTEGER*2 TWOSTOPBITS
  4676.       PARAMETER (TWOSTOPBITS=       2)
  4677.  
  4678.       INTEGER*2 IGNORE
  4679.       PARAMETER (IGNORE=            0)   ! Ignore signal
  4680.       INTEGER*2 INFINITE
  4681.       PARAMETER (INFINITE=      #FFFF)   ! Infinite timeout
  4682.  
  4683. C
  4684. C Error Flags
  4685. C
  4686.       INTEGER*2 CE_RXOVER
  4687.       PARAMETER (CE_RXOVER=         #0001)  ! Receive Queue overflow
  4688.       INTEGER*2 CE_OVERRUN
  4689.       PARAMETER (CE_OVERRUN=        #0002)  ! Receive Overrun Error
  4690.       INTEGER*2 CE_RXPARITY
  4691.       PARAMETER (CE_RXPARITY=       #0004)  ! Receive Parity Error
  4692.       INTEGER*2 CE_FRAME
  4693.       PARAMETER (CE_FRAME=          #0008)  ! Receive Framing error
  4694.       INTEGER*2 CE_BREAK
  4695.       PARAMETER (CE_BREAK=          #0010)  ! Break Detected
  4696.       INTEGER*2 CE_CTSTO
  4697.       PARAMETER (CE_CTSTO=          #0020)  ! CTS Timeout
  4698.       INTEGER*2 CE_DSRTO
  4699.       PARAMETER (CE_DSRTO=          #0040)  ! DSR Timeout
  4700.       INTEGER*2 CE_RLSDTO
  4701.       PARAMETER (CE_RLSDTO=         #0080)  ! RLSD Timeout
  4702.       INTEGER*2 CE_TXFULL
  4703.       PARAMETER (CE_TXFULL=         #0100)  ! TX Queue is full
  4704.       INTEGER*2 CE_PTO
  4705.       PARAMETER (CE_PTO=            #0200)  ! LPTx Timeout
  4706.       INTEGER*2 CE_IOE
  4707.       PARAMETER (CE_IOE=            #0400)  ! LPTx I/O Error
  4708.       INTEGER*2 CE_DNS
  4709.       PARAMETER (CE_DNS=            #0800)  ! LPTx Device not selected
  4710.       INTEGER*2 CE_OOP
  4711.       PARAMETER (CE_OOP=            #1000)  ! LPTx Out-Of-Paper
  4712.       INTEGER*2 CE_MODE
  4713.       PARAMETER (CE_MODE=           #8000)  ! Requested mode unsupported
  4714.  
  4715.       INTEGER*2 IE_BADID
  4716.       PARAMETER (IE_BADID=          -1)    ! Invalid or unsupported id
  4717.       INTEGER*2 IE_OPEN
  4718.       PARAMETER (IE_OPEN=           -2)    ! Device Already Open
  4719.       INTEGER*2 IE_NOPEN
  4720.       PARAMETER (IE_NOPEN=          -3)    ! Device Not Open
  4721.       INTEGER*2 IE_MEMORY
  4722.       PARAMETER (IE_MEMORY=         -4)    ! Unable to allocate queues
  4723.       INTEGER*2 IE_DEFAULT
  4724.       PARAMETER (IE_DEFAULT=        -5)    ! Error in default parameters
  4725.       INTEGER*2 IE_HARDWARE
  4726.       PARAMETER (IE_HARDWARE=       -10)   ! Hardware Not Present
  4727.       INTEGER*2 IE_BYTESIZE
  4728.       PARAMETER (IE_BYTESIZE=       -11)   ! Illegal Byte Size
  4729.       INTEGER*2 IE_BAUDRATE
  4730.       PARAMETER (IE_BAUDRATE=       -12)   ! Unsupported BaudRate
  4731.  
  4732. C
  4733. C Events
  4734. C
  4735.       INTEGER*2 EV_RXCHAR
  4736.       PARAMETER (EV_RXCHAR=         #0001)  ! Any Character received
  4737.       INTEGER*2 EV_RXFLAG
  4738.       PARAMETER (EV_RXFLAG=         #0002)  ! Received certain character
  4739.       INTEGER*2 EV_TXEMPTY
  4740.       PARAMETER (EV_TXEMPTY=        #0004)  ! Transmitt Queue Empty
  4741.       INTEGER*2 EV_CTS
  4742.       PARAMETER (EV_CTS=            #0008)  ! CTS changed state
  4743.       INTEGER*2 EV_DSR
  4744.       PARAMETER (EV_DSR=            #0010)  ! DSR changed state
  4745.       INTEGER*2 EV_RLSD
  4746.       PARAMETER (EV_RLSD=           #0020)  ! RLSD changed state
  4747.       INTEGER*2 EV_BREAK
  4748.       PARAMETER (EV_BREAK=          #0040)  ! BREAK received
  4749.       INTEGER*2 EV_ERR
  4750.       PARAMETER (EV_ERR=            #0080)  ! Line status error occurred
  4751.       INTEGER*2 EV_RING
  4752.       PARAMETER (EV_RING=           #0100)  ! Ring signal detected
  4753.       INTEGER*2 EV_PERR
  4754.       PARAMETER (EV_PERR=           #0200)  ! Printer error occured
  4755.  
  4756. C
  4757. C Escape Functions
  4758. C
  4759.       INTEGER*2 SETXOFF
  4760.       PARAMETER (SETXOFF=           1)      ! Simulate XOFF received
  4761.       INTEGER*2 SETXON
  4762.       PARAMETER (SETXON=            2)      ! Simulate XON received
  4763.       INTEGER*2 SETRTS
  4764.       PARAMETER (SETRTS=            3)      ! Set RTS high
  4765.       INTEGER*2 CLRRTS
  4766.       PARAMETER (CLRRTS=            4)      ! Set RTS low
  4767.       INTEGER*2 SETDTR
  4768.       PARAMETER (SETDTR=            5)      ! Set DTR high
  4769.       INTEGER*2 CLRDTR
  4770.       PARAMETER (CLRDTR=            6)      ! Set DTR low
  4771.       INTEGER*2 RESETDEV
  4772.       PARAMETER (RESETDEV=          7)      ! Reset device if possible
  4773.  
  4774.       INTEGER*2 LPTx
  4775.       PARAMETER (LPTx=              #80)    ! Set if ID is for LPT device
  4776.  
  4777.       STRUCTURE /DCB/
  4778.      BYTE Id                  ! Internal Device ID
  4779.      INTEGER*2 BaudRate       ! Baudrate at which runing
  4780.      BYTE ByteSize            ! Number of bits/byte, 4-8
  4781.      BYTE Parity              ! 0-4=None,Odd,Even,Mark,Space
  4782.      BYTE StopBits            ! 0,1,2 = 1, 1.5, 2
  4783.      INTEGER*2 RlsTimeout     ! Timeout for RLSD to be set
  4784.      INTEGER*2 CtsTimeout     ! Timeout for CTS to be set
  4785.      INTEGER*2 DsrTimeout     ! Timeout for DSR to be set
  4786.  
  4787. C
  4788. C Possibly some of these should be preinitialised, acn't be done in Fortran,
  4789. C so it becomes the users responsibility.
  4790. C
  4791.      BYTE fBinary             ! Binary Mode (skip EOF check)
  4792.      BYTE fRtsDisable         ! Don't assert RTS at init time
  4793.      BYTE fParity             ! Enable parity checking
  4794.      BYTE fOutxCtsFlow        ! CTS handshaking on output
  4795.      BYTE fOutxDsrFlow        ! DSR handshaking on output
  4796. C :2 IS /2/ ?
  4797.      BYTE fDummy              ! Reserved
  4798.      BYTE fDtrDisable         ! Don't assert DTR at init time
  4799.  
  4800.      BYTE fOutX               ! Enable output X-ON/X-OFF
  4801.      BYTE fInX                ! Enable input X-ON/X-OFF
  4802.      BYTE fPeChar             ! Enable Parity Err Replacement
  4803.      BYTE fNull               ! Enable Null stripping
  4804.      BYTE fChEvt              ! Enable Rx character event.
  4805.      BYTE fDtrflow            ! DTR handshake on input
  4806.      BYTE fRtsflow            ! RTS handshake on input
  4807.      BYTE fDummy2             ! Reserved
  4808.  
  4809.      CHARACTER XonChar        ! Tx and Rx X-ON character
  4810.      CHARACTER XoffChar       ! Tx and Rx X-OFF character
  4811.      INTEGER*2 XonLim         ! Transmit X-ON threshold
  4812.      INTEGER*2 XoffLim        ! Transmit X-OFF threshold
  4813.      CHARACTER PeChar         ! Parity error replacement char
  4814.      CHARACTER EofChar        ! End of Input character
  4815.      CHARACTER EvtChar        ! Recieved Event character
  4816.      INTEGER*2 TxDelay        ! Amount of time between chars
  4817.       END STRUCTURE
  4818.  
  4819.       STRUCTURE /COMSTAT/
  4820. C
  4821. C Possibly some of these should be preinitialised, acn't be done in Fortran,
  4822. C so it becomes the users responsibility.
  4823. C
  4824.      BYTE fCtsHold          ! Transmit is on CTS hold
  4825.      BYTE fDsrHold          ! Transmit is on DSR hold
  4826.      BYTE fRlsdHold         ! Transmit is on RLSD hold
  4827.      BYTE fXoffHold         ! Received handshake
  4828.      BYTE fXoffSent         ! Issued handshake
  4829.      BYTE fEof              ! End of file character found
  4830.      BYTE fTxim             ! Character being transmitted
  4831.      INTEGER*2 cbInQue      ! count of characters in Rx Queue
  4832.      INTEGER*2 cbOutQue     ! count of characters in Tx Queue
  4833.       END STRUCTURE
  4834.  
  4835.       INTEGER*2 OpenComm [EXTERN]
  4836.       INTEGER*2 SetCommState [EXTERN]
  4837.       INTEGER*2 GetCommState [EXTERN]
  4838.       INTEGER*2 ReadComm [EXTERN]
  4839.       INTEGER*2 UngetCommChar [EXTERN]
  4840.       INTEGER*2 WriteComm [EXTERN]
  4841.       INTEGER*2 CloseComm [EXTERN]
  4842.       INTEGER*2 GetCommError [EXTERN]
  4843.       INTEGER*2 BuildCommDCB [EXTERN]
  4844.       INTEGER*2 TransmitCommChar [EXTERN]
  4845.       INTEGER*2 FAR PASCAL SetCommEventMask [EXTERN]
  4846.       INTEGER*2 GetCommEventMask [EXTERN]
  4847.       INTEGER*2 SetCommBreak [EXTERN]
  4848.       INTEGER*2 ClearCommBreak [EXTERN]
  4849.       INTEGER*2 FlushComm [EXTERN]
  4850.       INTEGER*2 EscapeCommFunction [EXTERN]
  4851.  
  4852. $ENDIF ! NOCOMM
  4853.  
  4854. $IF DEFINED(MDI)
  4855.  
  4856.       STRUCTURE /MDICREATESTRUCT/
  4857.      INTEGER*4 szClass ! LPSTR
  4858.      INTEGER*4 szTitle ! LPSTR
  4859.      INTEGER*2 HANDLE hOwner
  4860.      INTEGER*2 x,y
  4861.      INTEGER*2 cx,cy
  4862.      INTEGER*4 style
  4863.      INTEGER*4 lParam       ! app-defined stuff
  4864.       END STRUCTURE
  4865.  
  4866. !typedef MDICREATESTRUCT FAR * LPMDICREATESTRUCT;
  4867.  
  4868.       STRUCTURE /CLIENTCREATESTRUCT/
  4869.      INTEGER*2 hWindowMenu
  4870.      INTEGER*2 idFirstChild
  4871.       END STRUCTURE
  4872.  
  4873. !typedef CLIENTCREATESTRUCT FAR * LPCLIENTCREATESTRUCT;
  4874.  
  4875.       INTEGER*2 DefFrameProc [EXTERN]
  4876.       INTEGER*2 DefMDIChildProc [EXTERN]
  4877.  
  4878. $IF DEFINED(MSG)
  4879.       INTEGER*2 TranslateMDISysAccel [EXTERN]
  4880. $ENDIF
  4881.  
  4882.       INTEGER*2 ArrangeIconicWindows [EXTERN]
  4883.  
  4884. $ENDIF ! NOMDI
  4885.  
  4886. $ENDIF ! NOUSER
  4887.  
  4888. $IF DEFINED(HELP)
  4889.  
  4890. C
  4891. C Help engine section.
  4892. C
  4893. C
  4894. C Commands to pass WinHelp()
  4895. C
  4896.       INTEGER*2 HELP_CONTEXT
  4897.       PARAMETER (HELP_CONTEXT=  #0001)   ! Display topic in ulTopic
  4898.       INTEGER*2 HELP_QUIT
  4899.       PARAMETER (HELP_QUIT=     #0002)   ! Terminate help
  4900.       INTEGER*2 HELP_INDEX
  4901.       PARAMETER (HELP_INDEX=    #0003)   ! Display index
  4902.       INTEGER*2 HELP_HELPONHELP
  4903.       PARAMETER (HELP_HELPONHELP=#0004)  ! Display help on using help
  4904.       INTEGER*2 HELP_SETINDEX
  4905.       PARAMETER (HELP_SETINDEX= #0005)   ! Set the current Index for multi index help
  4906.       INTEGER*2 HELP_KEY
  4907.       PARAMETER (HELP_KEY=      #0101)   ! Display topic for keyword in offabData
  4908.       INTEGER*2 HELP_MULTIKEY
  4909.       PARAMETER (HELP_MULTIKEY= #0201)
  4910.  
  4911.       INTEGER*2 WinHelp [EXTERN]
  4912.  
  4913.       STRUCTURE /MULTIKEYHELP/
  4914.      INTEGER*2 mkSize
  4915.      BYTE mkKeylist
  4916.      BYTE szKeyphrase(1)
  4917.       END STRUCTURE
  4918.  
  4919. $ENDIF ! NOHELP
  4920.  
  4921. $IF DEFINED(PROFILER)
  4922. C
  4923. C function declarations for profiler routines contained in Windows libraries
  4924. C
  4925.       INTEGER*2 ProfInsChk [EXTERN]
  4926. $ENDIF ! NOPROFILER
  4927.